#ABC217
今回参加したABC217についての参加記録
2021年9月4日(土)のAtCoder Beginner Contest 217でした。
##結果
A,B,C問題を正解
レート:49→72 (+23) Highest!
順位:5793/ 8543
時間: A問題 7:31 B問題 16:10 C問題 27:55
パフォーマンス:281
##詳細
###A問題
問題
提出コード(AC)
A問題_1.py
S,T =list(map(str,input().split()))
le=min(len(S),len(T))
A=[]
A.append(S)
A.append(T)
AN=sorted(A)
if AN[0]==S:
print('Yes')
else:
print('No')
###B問題
提出コード(AC)
B問題_1.py
l=[]
for i in range(3):
row=input()
l.append(row)
A=[['ABC',False],['ARC',False],['AGC',False],['AHC',False]]
for i in range(3):
if l[i]=='ABC':
A[0][1]=True
elif l[i]=='ARC':
A[1][1]=True
elif l[i]=='AGC':
A[2][1]=True
elif l[i]=='AHC':
A[3][1]=True
ans=0
for i in range(4):
if A[i][1]:
ans=ans
else:
ans=A[i][0]
print(ans)
###C問題
問題
提出コード(AC)
C問題_1.py
N=int(input())
P=list(map(int,input().split()))
Q=[0]*N
for i in range(N):
x=P[i]
Q[x-1]=i+1
print(*Q)
###D問題
提出コード1(TLE)
D問題_1.py
L,C=list(map(int,input().split()))
c=0
Q=[]
for i in range(C):
l=list(map(int,input().split()))
if l[0]==1:
c+=1
Q.append(l)
V=[0,L]
ans=[]
for i in range(C):
if Q[i][0]==1:
V.append(Q[i][1])
V.sort()
else:
for x in range(len(V)):
if Q[i][1]>V[x]:
an=V[x+1]-V[x]
ans.append(an)
for i in range(len(ans)):
print(ans[i])
提出コード2(TLE)
D問題_2.py
L,C=list(map(int,input().split()))
c=0
Q=[]
for i in range(C):
l=list(map(int,input().split()))
if l[0]==1:
c+=1
Q.append(l)
V=[0,L]
ans=[]
for i in range(C):
if Q[i][0]==1:
V.append(Q[i][1])
V.sort()
else:
for x in range(len(V)):
if Q[i][1]>V[x]:
an=V[x+1]-V[x]
ans.append(an)
for i in range(len(ans)):
print(ans[i])
##振り返り、反省
前回の反省を生かしてA,B,C問題は丁寧に回答し一発ACを得ることができた
D問題は制限時間をオーバーしてしまい、正解できなかった
1回目と2回目の違いはPython3とPypy3で提出したらもしかしたら変わるかもしれないと思いあがいた結果である
計算量がかなり多くなっていることがわかる(V=len(V) O(CVlogVV) )
##感想
A~Cまでとけたため自分の中ではそこそこの満足度がある
ただこれで満足しているようではいけないのでさらに解ける問題を増やしていきたい