AtCoder Regular Contest 064 参加記

はい。 ox-- 1302(+24)
http://arc064.contest.atcoder.jp
C問題は割とあっさり通して、D問題は嘘解法は出力が2種類のみだったので嘘解法でもなんでもなんとかならんかあがいてダメでした。。

C - Boxes and Candies

Python2

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

最近にcodeforcesで見た http://codeforces.com/contest/732/problem/B の感覚でa[i-1]よりa[i]優先で大丈夫であろうことは不安がなかった。提出前にa[i]<xでa[i]だけで調整できない場合の対応が必要なことに気付いたのでそれをコミで書いて1発ACでした。

D - An Ordinary Game

Python2

s=raw_input()
ans=chk=0
chk=len(s)
if (chk%2==1 and s[0]!=s[-1]) or (chk%2==0 and s[0]==s[-1]):
    print 'First'
else:
    print 'Second'

コンテスト中にはACできませんでした。文字列の長さの偶奇だけで適当に分けたのを提出してたり、中間に同じ文字が有っても負けないための最良の行動すると事前に取り除く気がして中間は同じ文字有っても関係ないだろうな、とまでは思ってたのに解法には辿り着きませんでした。。短い文字数で手動でシミュをもっとやるべきだった。
解法としては文字列長奇数で先頭と末尾が異なるか、文字列長偶数で先頭と末尾が同じ文字ならFirst。それ以外がSecondとなるようでした。。