AtCoder Beginner Contest 031
はい。
https://beta.atcoder.jp/contests/abc031
A - ゲーム
Python2
a,d=map(int,raw_input().split()) print max((a+1)*d,a*(d+1))
両方試して比較して出力。
B - 運動管理
Python2
l,h=map(int,raw_input().split()) n=int(raw_input()) for i in range(n): a=int(raw_input()) print 0 if l<=a<=h else -1 if a>h else l-a
1行ずつ計算して出力。
C - 数列ゲーム
Python3
n=int(input()) a=[int(i) for i in input().split()] o,e=[],[] for i in range(n): if i%2: e.append(a[i]) o.append(0) else: o.append(a[i]) e.append(0) if min(a)<0: ans=min(a)*n else: ans=0 for i in range(n): chk=[0]*3 for j in range(n): if i==j: continue elif i<j: if i%2: t=sum(e[i:j+1]) b=sum(o[i:j+1]) if chk[2]==0 or b>chk[1]: chk=[t,b,1] else: t=sum(o[i:j+1]) b=sum(e[i:j+1]) if chk[2]==0 or b>chk[1]: chk=[t,b,1] elif i>j: if j%2: t=sum(e[j:i+1]) b=sum(o[j:i+1]) if chk[2]==0 or b>chk[1]: chk=[t,b,1] else: t=sum(o[j:i+1]) b=sum(e[j:i+1]) if chk[2]==0 or b>chk[1]: chk=[t,b,1] ans=max(ans,chk[0]) print(ans)
全部試しても大丈夫らしいので全部試す。高橋君の位置iに対して青木君の位置jを1番目からn番目まで全部試す。最も左からスタートするので青木君の得点が大きい場合だけchkを更新する。n番目まで調べ終わったら高橋君の位置iの得点が決まるので1からn番目まで比較して最大値が解になると思う。