ABC166 をPythonで解く

atcoder.jp

A~Cを解いた。

A

S = input()
if S=="ABC":
    print("ARC")
else:
    print("ABC")

 

B

N,K = map(int,input().split())
 
O = [0]*N
 
for k in range(K):
    d = int(input())
    A = [int(i) for i in input().split()]
    for a in A:
        O[a-1]+=1
print(O.count(0))

C

展望台の組み合わせは入力と入力を逆にしてlistに格納する。 展望台の組み合わせ一覧に出現した回数と、その展望台が条件を満たす回数が一致しているか否かを数える。

N,M =map(int,input().split())
H= [int(j) for j in input().split()]
AB = []
for _ in range(M):
    a,b = map(int,input().split())
    AB.append([a,b])
    AB.append([b,a])
AB.sort(key=lambda s:s[0])
cnt =0
last_a = AB[0][0]
a_cnt = [0] *N
h_cnt = [0] *N
for a,b in AB:
    a-=1
    b-=1
    a_cnt[a] =a_cnt[a]+1
    if H[a] >H[b]:
        h_cnt[a]=h_cnt[a]+1
    
for i,a in enumerate(a_cnt):
    if h_cnt[i]==a:
        cnt+=1
print(cnt)