ページ

2012/05/02

[競技プログラミング][C言語][AtCoder]うるう年

A - うるう年

時間制限 : 2sec / スタックサイズの制限 : 10MB / メモリー制限 : 64MB

問題文

高橋君は忘れっぽい性格なので、うるう年は 2 月 29 日の存在を毎回忘れてしまいます。
そこで、自動でうるう年かどうかをコンピュータに教えてもらえるようにしたいと思います。
入力として与えられた年がうるう年かそうでないかを判断しなさい。

ただし、うるう年は以下の規則で決定します。
規則 1:4 で割り切れる年はうるう年である。
規則 2:100 で割り切れる年をうるう年ではない。
規則 3:400 で割り切れる年はうるう年である。
規則 4:規則 1〜3 のいずれも満たさない場合は,うるう年ではありません。
ただし、規則 1 〜 3 の内に複数満たすものがあれば後の規則(数字の大きな規則)が優先されます。
例えば、2000 年は規則 3 を満たすのでうるう年です。
2100 年は規則 2 を満たしますが、規則 3 を満たさないのでうるう年ではありません。

入力

入力は以下の形式で標準入力から与えられる。
Y
年を表す整数 Y(1000≦Y≦2999) が 1 行で与えられる。

出力

与えられた年がうるう年ならば YES、そうでなければ NO を標準出力に 1 行で出力せよ。
なお、最後には改行を出力せよ。

出典

うるう年 - AtCoder Regular Contest #002 | アットコーダー

回答

AtCoder/arc002_1.cpp at master · wada811/AtCoder · GitHub

閏年の判定は何回かやったからすぐにできた。判定部分はコピペしてきたけど。
この問題は次のB問題で使うための小問みたいな感じだった。