AtCoder Beginner Contest 151 過去問(A~C)

A問題

特に問題なく

import string
s = string.ascii_lowercase
print(s[s.index(str(input()))+1])

B問題

特に問題なく

n,k,m=map(int, input().split()) 
lis = list(map(int, input().split()))
nokori = m*n-sum(lis)
if k<nokori: print('-1')
elif nokori<0: print(0)
else: print(nokori)

C問題

考慮すべき点は

  • 同じ問題においてAC以降のWAはカウントされない
  • 各問題においてACは一度きり
  • WAがカウントされるのは後にACとなった問題

3つ目のポイントを無視し続けて、WAを連発してしまいました。
0<=N<=10**5,0<=M<=10**5なので二重ループさせないよう注意します。

n,m = map(int,input().split())
ac, wa=[False]*n,[0]*n
for i in range(m):
  p,s = input().split()
  p=int(p)
  if s=='AC': ac[p-1]=True
  elif (s=='WA') and (ac[p-1]==False): wa[p-1]+=1
 
penalty, clear=0,0
for i,tf in enumerate(ac):
  if tf:
    penalty += wa[i]
    clear += 1
print('%d %d'%(clear,penalty))

D問題

D問題以降は茶色コーダーになってから随時更新していきます。