AtCoder Beginner Contest 089
はい。
https://atcoder.jp/contests/abc089
A - Grouping 2
Python3
print(int(input())//3)
3で割った数の解を出力で多分大丈夫。
B - Hina Arare
Pyhthon3
n=int(input()) l=set([i for i in input().split()]) print(["Three","Four"][len(l)==4])
set型最高なのでsetを使えば大丈夫。
C - March
Pyhthon3
n=int(input()) d={"M":0,"A":0,"R":0,"C":0,"H":0} t=["M","A","R","C","H"] ans=chk=0 for i in range(n): s=input() if s[0] in d: d[s[0]]+=1 for i in range(3): for j in range(i+1,4): for k in range(j+1,5): ans+=d[t[i]]*d[t[j]]*d[t[k]] print(ans)
全部数えても間に合うので全部で。多分。
D - Practical Skill Test
PyPy3
def sol(): h,w,d=map(int,input().split()) a=[[int(i) for i in input().split()] for i in range(h)] t={} for i in range(h): for j in range(w): t[a[i][j]]=(i,j) ans=[0]*(h*w+1) for i in range(h*w,d,-1): o,p=t[i] ans[i-d]=ans[i]+abs(o-t[i-d][0])+abs(p-t[i-d][1]) q=int(input()) for i in range(q): l,r=map(int,input().split()) print(ans[l]-ans[r]) if __name__=="__main__": sol()
l,rの増加をシミュしてたりしてTLEを大量生産した。解説を少し見たら累積和という単語を見かけてシミュする必要ないことに気づいてTLE 解消してAC。