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

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

Educational Codeforces Round 7

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

A. Infinite Sequence

ざっくりと大意

・1, 1,2, 1,2,3, 1,2,3,4, ...というような数列がある。それのn番目を出力する。

Python2

n=int(raw_input())
x=int((-1+(8*n)**0.5)/2)
ans=chk=0
if x*(x+1)/2==n:
    print x
else:
    print n-x*(x+1)/2

写経したけど意味不明。。。Editorialで書いてる解法はnを1減算、2減算、3減算...をnが負の数になるまで続ける。最後の非負数が解になるらしい。非負は1以上だと思う。でないと解がずれる。C++で書かれてる想定解? http://pastebin.com/hAnJGhvB だとそんな感じで書かれてる。がPython2で間に合わず。PyPy2なら間に合うようだ。。

PyPy2

n=int(raw_input())
x=1
n-=1
while x<=n:
    n-=x
    x+=1
print n+1

うーん、Pythonは確かに遅いけどEducationalのA問題でTLEになるのはもやっとする。

B. The Time

ざっくりと大意

・hh:mmのa分後を出力

Python2

h,m=map(int,raw_input().split(':'))
a=int(raw_input())
m+=a
h+=m/60
print "%02d:%02d"%(h%24,m%60)

分を足して60以上は繰上げて、時も24以上は処理したり、2桁表示になるように0埋め必要だったりするけどA問題より難易度低いと思う。