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

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

Codeforces Round #373 (Div.2)

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

A. Vitya in the Countryside

ざっくりと大意

・0,1,2...13,14,15,14,13...2,1,0,1...のように月の満ち欠けがループする。数列aの最終日の次の日の大小はどうなるか。

Python2

n=int(raw_input())
a=map(int,raw_input().split())

if a[-1]==15 or (n>1 and a[-1]!=0 and a[-2]-a[-1]>0):
    print 'DOWN'
elif a[-1]==0 or (n>1 and a[-2]-a[-1]<0):
    print 'UP'
else:
    print -1

末尾が15か、要素数2つ以上で末尾2番目>末尾1番目(末尾0は例外でUP)ならDOWN確定。末尾が0か、要素数2つ以上で末尾2番目<末尾1番目(末尾15は例外でDOWN)ならUP確定、それ以外は(おそらく末尾0,15以外で要素数1つのパターン)確定できないので-1。

B. Anatoly and Cockroaches

ざっくりと大意

・r,bが並んだ文字列をr,bがそれぞれ交互になるようにしたい。2つを入れ替えて交換するか、1つを塗り替えるのを1手とする場合に交互の状態が完成する最小手数はいくつか??

Python2

n=input()
s=raw_input()
r1=r2=b1=b2=0
for a,i in enumerate(s):
    if a%2==0:
        if i=='r': r1+=1
        if i=='b': b2+=1
    elif a%2==1:
        if i=='r': r2+=1
        if i=='b': b1+=1
print min(min(r1,b1)+abs(r1-b1),min(r2,b2)+abs(r2-b2))

先頭からrbr..となる場合と、brb...となるのを別々考える。数えたr,bの少ない方は入れ替えで処理が出来るもの、rとbの差の絶対値は単独で塗り替えが必要なもの。

C. Efim and Strange Grade

ざっくりと大意

・小数点以下の部分を最大でt回四捨五入にして与えられた数が最大のものになるようにする。
・一度やったことあるけどあとで