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。