🌐
【AtCoder】ABC409 振り返り📝
ABC409 - A
問題はこちら
最近フロントエンドばっかり書いていたからPythonの書き方をすべて忘れ去っていて、inputをintにする方法すらわからなくて焦った…
まあ解けたは解けたからOKかな?
n = int(input())
a = input()
b = input()
for i in range(n):
if(a[i]=="o" and a[i]==b[i]):
print("Yes")
break
if(i==n-1):
print("No")
ABC409 - B
問題はこちら
見える範囲のテストケースは通ったのに提出した後のテストケースでWAしてワーーーー???ってなった。
結局 5
5 5 5 5 5
みたいな同じ数字の時がダメだったんだけど、これ見つけるのに15分くらいかかってしまったので、これくらいすぐわかりたかったな~の気持ち。
n = int(input())
a = list(map(int, input().split()))
for i in range (max(a)+1): #0~max(a)
count = 0
for j in range (n): #a[0]~a[n-1]
if(a[j] >= i):
count += 1
if(count < i):
print(i-1)
break
elif(i==max(a)):
print(i)
ABC409 - C
問題はこちら
これ!!!私の中では解けてるのに!!!TLEです!!!!!!
モウムリィ…
n,l = map(int, input().split())
d = list(map(int, input().split()))
tenP = [0]*n
for i in range(n-1):
tenP[i+1] = (tenP[i]+d[i])%l
if(l%3 != 0):
print(0)
else:
tri = 0
for i in range(n):
if(tenP[i] < l/3):
tri += tenP.count(tenP[i]+l/3)*tenP.count(tenP[i]+2*l/3)
print(tri)
今回の感想
久々の参加にしてはがんばったかな?
同期とAtCoderの話題で盛り上がっていて、一緒に参加できる人がいるのって楽しいな~の気持ちです。
大学時代は友達いなさ過ぎて何するにも孤独だったので…
2025/06/11 追記
QiitaってAtCoderの記事あるんかな~って眺めてたらたまたま見つけてとてもわかりやすかったので、
→ AtCoder ABC409 振り返り(緑コーダーがPythonでABCD問題)
書き直してみた!
n,l = map(int, input().split())
d = list(map(int, input().split()))
# 円周が3の倍数でないときは正三角形が存在しない
if l % 3 != 0:
print(0)
exit()
points = [0]*(l+1) # 点Pに何個あるか
points[0] = 1
current = 0
# 各点がどの点に配属されるか
for num in d:
current = (current+num) % l
points[current] += 1
# 三角形の数を数える
count = 0
for i in range(l//3 + 1):
point1 = points[i]
point2 = points[i + l//3]
point3 = points[i + 2*(l//3)]
count += point1 * point2 * point3
print(count)
確かにDの各点の位置求めてcountするより、点Pに何個あるかを記録しておく方が計算量少ないよな~
グワァ 納得感と敗北感……
Discussion