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

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

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

Codeforces Round #223 (Div. 2)

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

A. Sereja and Dima

ざっくりと大意

・n枚のカードを並べていてSerejaとDimaが自分が集めたカードが最大になるようなゲームをする。
・カードは左か右のどちらかの端からしか取れない、またSerejaが先手で開始してカードがなくなると終了する。

方針のようなもの

・今見えてるのが左と右のどちらか大きい方を取る。

n=input()
l=map(int,raw_input().split())
ans=[0,0]
for i in range(n):
    if l[0]>l[-1]:
        if i%2:
            ans[1]+=l[0]
        else:
            ans[0]+=l[0]
        l.pop(0)
    else: 
        if i%2:
            ans[1]+=l[-1]
        else:
            ans[0]+=l[-1]
        l.pop()
print ans[0],ans[1]

左右両端のどちらが大きいか、同じなら右優先にしかしてないけどアレでアレがアレ。入力がもしも 1 1 100 1 とかあったらわざわざ100を取れるようにしてあげちゃうというか今回はそういうの問われていないのかな。問題文読み足りないのか???

B. Sereja and Stairs

ざっくりと大意

・n個の数を 5 4 3 2 11 2 3 2 1 のように並び替える。

方針のようなもの

・降順だけになるならすべての数が1回ずつしか使えないで連続した数が必要。 山型になるなら頂点は1回しか使えず斜面は2回使えるが同じ長さ続くとは限らない。
・すごい面倒そう。。あとで。。