読者です 読者をやめる 読者になる 読者になる

君はまるで砂漠に咲く、一輪の花。

僕はその花に引き寄せられる蝶。

Educational Codeforces Round 13

はい。
http://codeforces.com/contest/678

A. Johny Likes Numbers

ざっくりと大意

・nより大きくてkで割り切れる最小の数はいくつか。

Python2

n,k=map(int,raw_input().split())
print n-n%k+k

nからkで割ったときの余りを引いて(もし割り切れて余り0でも可)、kを足せばnより大きくkで割り切れる最小の数になるはず。

B. The Same Calendar

ざっくりと大意

・カレンダーが全く同じになる次の年はいくつか。

Python2

import calendar
n=int(raw_input())
def sol(n):
    a=calendar.monthcalendar(n,1)[0][-1]
    b=calendar.monthcalendar(n,3)[0][-1]
    for i in range(1,10000):
        p=calendar.monthcalendar(n+i,1)[0][-1]
        q=calendar.monthcalendar(n+i,3)[0][-1]
        if a==p and b==q:
            return i
print sol(n%2000+2000)+n

初回提出はcalendar使うだけで楽勝だと思ってたら西暦ウン万年とかでエラーに。。。一定周期でループしてるし無理やり小さくすればいいだろうということで%2000+2000で強引にclarendar使える範囲にして計算した。けどこれは通常年なら〜、うるう年なら〜、でいくつずれるかを計算するものだったらしい。。