はい。
Codeforces Round #404 (Div. 2)
記事の書式を今回から変更します。
A. Anton and Polyhedrons
d={"Tetrahedron":4,"Cube":6,"Octahedron":8,"Dodecahedron":12,"Icosahedron":20}
ans=0
n=int(input())
for i in range(n):
ans+=d[input()]
print(ans)
連想配列か、配列2つ用意して対応するかだと思います。
B. Anton and Classes
n=int(input())
p=[0,10**10]
q=[0,10**10]
for i in range(n):
a,b=map(int,input().split())
p[0]=max(p[0],a)
p[1]=min(p[1],b)
m=int(input())
for i in range(m):
a,b=map(int,input().split())
q[0]=max(q[0],a)
q[1]=min(q[1],b)
print(max(0,q[0]-p[1],p[0]-q[1]))
先に受講の終了時間が最も早く、後に受講の開始時間が最も遅いもので最大の休憩時間が確保出来るはず。同じコードでPython3のが早くて、PyPy3だと遅い。よくわかりません。
C. Anton and Fairy Tale
n,m=map(int,input().split())
if n<=m:
print(n)
else:
w=[1,10**19]
for i in range(100):
x=w[0]+w[1]
x=x//2
y=x+m
p=x*m+n-m
q=(y*(y+1)//2)-(m*(m+1)//2)
if p>=q: w[0]=x
else: w[1]=x
x=w[0]
y=x+m
p=x*m+n-m
q=(y*(y+1)//2)-(m*(m+1)//2)
if p<=q: print(m+w[0])
else: print(m+w[1])
倉庫容量以上の補給をされるならn日目が満杯の倉庫を1回で空にする日になります。そうでなかった場合は1日ずつシミュするとTLEするので二分探索のような何かで調べました。