Submission #66610919


Source Code Expand

"""
<方針>
- 円周上で三角形が正三角形になるときは、`+L//3` ずつしたところを確認すれば良い。
- また、`L%3 == 0` の時だけ正三角形が存在しうる。
- 最初の点は、`0~L//3` だけ確認すれば良い。
- 計算時間は `O(N+L)` になるはず。
"""
# 入力
N, L = map(int, input().split())
D = list(map(int, input().split()))

# 正三角形を生成できないとき
if(L%3 != 0):
  print(0)
  exit()

# 円周上に点を置く
ind = 0
C = [0]*L
C[0] += 1
for d in D:
  ind += d
  ind %= L
  C[ind] += 1

# カウントをする
ans = 0
# L//3だけ見れば良い
for i in range(L//3):
  X = C[i+0*L//3]
  Y = C[i+1*L//3]
  Z = C[i+2*L//3]
  
  ans += X*Y*Z

# 出力
print(ans)

Submission Info

Submission Time
Task C - Equilateral Triangle
User mattsunkun
Language Python (PyPy 3.10-v7.3.12)
Score 300
Code Size 777 Byte
Status AC
Exec Time 103 ms
Memory 134308 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 37
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 56 ms 76552 KiB
00_sample_01.txt AC 56 ms 76332 KiB
00_sample_02.txt AC 56 ms 76348 KiB
01_test_00.txt AC 56 ms 76284 KiB
01_test_01.txt AC 61 ms 81436 KiB
01_test_02.txt AC 73 ms 97804 KiB
01_test_03.txt AC 94 ms 128992 KiB
01_test_04.txt AC 61 ms 81180 KiB
01_test_05.txt AC 63 ms 82016 KiB
01_test_06.txt AC 89 ms 116044 KiB
01_test_07.txt AC 94 ms 130100 KiB
01_test_08.txt AC 59 ms 82444 KiB
01_test_09.txt AC 61 ms 82804 KiB
01_test_10.txt AC 87 ms 118248 KiB
01_test_11.txt AC 97 ms 132880 KiB
01_test_12.txt AC 61 ms 83088 KiB
01_test_13.txt AC 63 ms 84048 KiB
01_test_14.txt AC 79 ms 102448 KiB
01_test_15.txt AC 103 ms 134308 KiB
01_test_16.txt AC 58 ms 76332 KiB
01_test_17.txt AC 61 ms 80496 KiB
01_test_18.txt AC 79 ms 107152 KiB
01_test_19.txt AC 92 ms 130752 KiB
01_test_20.txt AC 89 ms 125984 KiB
01_test_21.txt AC 89 ms 125812 KiB
01_test_22.txt AC 89 ms 125924 KiB
01_test_23.txt AC 89 ms 125892 KiB
01_test_24.txt AC 92 ms 125904 KiB
01_test_25.txt AC 92 ms 125868 KiB
01_test_26.txt AC 99 ms 129212 KiB
01_test_27.txt AC 95 ms 130820 KiB
01_test_28.txt AC 89 ms 125580 KiB
01_test_29.txt AC 89 ms 126072 KiB
01_test_30.txt AC 86 ms 127612 KiB
01_test_31.txt AC 85 ms 127584 KiB
01_test_32.txt AC 84 ms 127404 KiB
01_test_33.txt AC 56 ms 76288 KiB