結果
| 問題 |
No.1097 Remainder Operation
|
| コンテスト | |
| ユーザー |
Chihaya_chan
|
| 提出日時 | 2020-09-05 02:05:35 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 725 bytes |
| コンパイル時間 | 175 ms |
| コンパイル使用メモリ | 12,928 KB |
| 実行使用メモリ | 27,360 KB |
| 最終ジャッジ日時 | 2024-11-26 21:37:50 |
| 合計ジャッジ時間 | 7,980 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 2 WA * 19 |
ソースコード
N = int(input())
A = list(map(int, input().split()))
Q = int(input())
querie = [int(input()) for i in range(Q)]
mod_set = set([0])
seq = [0]
now_value = 0
flag = True
while flag:
V = now_value + A[now_value % N]
if not V % N in mod_set:
mod_set.add(V % N)
seq.append(V)
now_value = V
continue
else:
flag = False
seq.append(V)
L, R = 10**10, 0
modular = seq[-1] % N
for i in range(len(seq)):
if seq[i] % N == modular:
R = i
L = min(L, i)
D = seq[R] - seq[L]
period = R-L
def solve(X):
if X <= len(seq) - 1:
return seq[X]
else:
u, v = divmod(X, period)
return seq[v] + D*u
for q in querie:
print(solve(q))
Chihaya_chan