けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

日付や時刻に関する問題

AtCoder ABC 376 A - Candy Button (6Q, 灰色, 150 点)

「前回の値」を保持しながらシミュレーションする系 問題へのリンク 問題概要 ボタンを押すと、1 個の飴がもらえるが、前回飴をもらってから 秒間はもらえない。 高橋君は 回ボタンを押した。それぞれ 秒後に押した(これらは単調増加)。 何回飴をもらえた…

JOI 予選 2011 A - 合計時間 (AOJ 0554) (9Q, 難易度 1)

一次予選が始まる前の JOI 予選問題の中でも、比較的易しめの問題 問題へのリンク 問題概要 4 回の移動をした。各移動に要した時間は 秒であった。 この総合時間が何分何秒であるかを求めよ。 考えたこと を求めましょう。その値を total としたとき、答えは…

JOI 予選 2009 A - タイムカード (AOJ 0532) (7Q, 難易度 1)

tuple 値を上手に扱う問題! 問題へのリンク 問題概要 A さん、B さん、C さんの出社時刻と退社時刻がそれぞれ与えられる。時刻は 3 つの整数 で与えられ、それぞれ時刻の時間、分、秒を表す。 3 人それぞれの出勤時間を上述の 3 つの整数で表せ。 制約 考え…

AtCoder ABC 367 A - Shout Everyday (6Q, 灰色, 150 点)

ややこしいけど、落ち着いて考えればできる! 問題へのリンク 問題概要 AtCoder 王国の住民は 時になるとたこ焼きへの愛を叫ぶことになっている。 AtCoder 王国に住む高橋君は毎日 時に就寝し 時に起床する。 高橋君はたこ焼きへの愛を叫ぶことができている…

AtCoder ABC 267 A - Saturday (8Q, 灰色, 100 点)

if 文を並べる感じ。switch 文が使えるなら、それでも! 問題へのリンク 問題概要 Monday, Tuesday, Wednesday, Thursday, Friday のいずれかの文字列 が与えられる。それぞれ、月曜日、火曜日、水曜日、木曜日、金曜日を表す。 この日から土曜日まで何日で…

AtCoder ABC 245 A - Good morning (7Q, 灰色, 100 点)

ペア値の大小比較。もしくは「分」に換算する手もある。 問題へのリンク 問題概要 高橋君は 時 分に起きて、青木君は 時 分 1 秒に起きた。 高橋君の起床時刻が青木君より早いならば Takahashi を、そうでないならば Aoki を出力せよ。 考えたこと ペア値 と…

AtCoder ABC 258 A - When? (8Q, 灰色, 100 点)

最後の出力が少しややこしいかもしれない。 問題へのリンク 問題概要 21:00 の 分後の時刻を "22:14" のような形式で出力せよ。 制約 解法 まずは時刻を求めよう。 のときは、 時 分 のときは、 時 分 と求められる。 さて、出力するときには「何分」のとこ…

JOI 一次予選 2024 (第 2 回) B - 火曜日 (8Q, 難易度 1)

慣れていないと少し難しいかもしれない。 問題へのリンク editorial 問題概要 今日は日曜日である。 今日の 日後が火曜日であるならば 1 を、そうでないならば 0 を出力せよ。 解法 日後が火曜日であるための条件を考えましょう。 「0 日後は日曜日」「1 日…

AtCoder ABC 200 A - Century (8Q, 灰色, 100 点)

切り上げ処理の問題! 問題へのリンク 問題概要 西暦 年は何世紀ですか? 解法 のとき、2 世紀 のとき、21 世紀 というように、 を 100 で割ったときの余りを切り上げたものが答えとなる。 これは、(N + 100 - 1) / 100 によって求められる。ここがピンと来…

AtCoder ABC 146 A - Can't Wait for Holiday (8Q, 灰色, 100 点)

ちょっと面倒。配列を使えば少し楽できるかもしれない。 問題へのリンク 問題概要 曜日を表す文字列 が与えられる。日曜日が何日後かを求めよ。 (詳細はリンク先を参照) 解法 は 7 通りしかないので、それぞれについて答えを出力していく。 if 文や switch …

AtCoder ABC 119 A - Still TBD (7Q, 灰色, 100 点)

これは戸惑った人も多いと思う。実は単純に考えて OK! 問題へのリンク 問題概要 日付データが yyyy/mm/dd 形式の文字列で与えられる (ex:"2019/04/30")。 与えられた日付が、2019 年 4 月 30 日以前であるかどうかを判定せよ。 解法 文字列を string 型で…

AtCoder ABC 331 A - Tomorrow (7Q, 灰色, 100 点)

2 回繰り上がる場合 (年末の日) に注意! 問題へのリンク 問題概要 ある暦では、1 年は 月あり、1 月は 日だけある (固定値)。 年 月 日の翌日を答えよ。 解法 年末のパターン、つまり かつ というパターンを見逃さないようにしよう! 年末のときは:答えは …

AtCoder ABC 096 A - Day of Takahashi (7Q, 灰色, 100 点)

一瞬、各月の日数を考えないといけない気がして面倒だ......となった。でもその必要はなかった。 問題へのリンク 問題概要 2018 年 1 月 1 日から、2018 年 月 日までに、「月と日が等しい日」が何日あるかを数えてください。 解法 この手の問題では手を動か…

AtCoder ABC 084 A - New Year (9Q, 灰色, 100 点)

時刻の問題! 問題へのリンク 問題概要 今、12 月 30 日の 時です ()。年が明けるのは何時間後でしょうか。 解法 12 月 30 日と、12 月 31 日の 2 日間の時間をすべて合わせると 時間 あります。そのうちの 時間がすでに経過しているということなので、年が…

AtCoder ABC 065 A - Expired? (灰色, 100 点)

これはちゃんと整理するの大変だと思う! 問題へのリンク 問題概要 ある商品は、賞味期限を過ぎてから 日後まではお腹を壊さずに食べることができる。一方、賞味期限を過ぎてから食べると美味しくありません。 その商品を、賞味期限の 日前に購入し、その日…

AtCoder ABC 057 A - Remaining Time (9Q, 灰色, 100 点)

24 時制の問題 問題へのリンク 問題概要 24 時制で 時から 時間後の時刻を 24 時制で表したものを求めよ。 解法 基本的には を計算すればよい。もし 24 を超えたら 24 を引けばよい。 あるいは、剰余演算子「%」を用いて (A + B) % 24 を求めてもよい。 #inc…

AtCoder ABC 328 B - 11/11 (6Q, 灰色, 200 点)

少し複雑めの全探索。 問題へのリンク 問題概要 1 年が ヶ月からなる暦がある。 月はそれぞれ 日ある。 この暦において、ゾロ目に日付は何日あるかを答えよ。 制約 考えたこと について順に調べていけば良い。 自体がゾロ目でないとダメ がゾロ目なら、その…

AtCoder ARC 023 A - 経過日数 (7Q, 試験管灰色)

日付に関する問題は Python が楽!! 問題へのリンク 問題概要 与えられた日付から、2014/05/17 までの経過日数 (負もありうる) を求めよ。 制約 "1988/07/03" から "2014/12/31" まで 考えたこと 全部 Python の datetime に任せる! コード import datetim…

AtCoder ARC 002 B - 割り切れる日付 (7Q, 試験管灰色)

現在の AtCoder ではあまり出なさそうな問題。こういうのは Python 楽だね。 問題へのリンク 問題概要 (西暦) ÷ (月) ÷ (日) が整数となるような日付を「割り切れる日付」と呼ぶ。 日付が "2020/11/14" のようなフォーマットで与えられる。その日付以降の最…

AtCoder AGC 011 A - Airport Bus (3Q, 緑色, 300 点)

頭の整理がちょっと大変な問題 問題へのリンク 問題概要 人が次々とバス停に到着する ( 人の到着時刻が で与えられる)。以下の条件を満たすように乗客たちをバスに乗せていきたい。 どの乗客もバス停に到着してから 分以内に出発させる 1 台のバスには 人ま…