結果
問題 |
No.1097 Remainder Operation
|
ユーザー |
![]() |
提出日時 | 2023-03-31 03:55:22 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,090 ms / 2,000 ms |
コード長 | 551 bytes |
コンパイル時間 | 332 ms |
コンパイル使用メモリ | 82,592 KB |
実行使用メモリ | 324,740 KB |
最終ジャッジ日時 | 2024-09-22 11:31:14 |
合計ジャッジ時間 | 14,714 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 21 |
ソースコード
n=int(input()) a=list(map(int,input().split())) dp=[[0]*n for i in range(62)] s=[[0]*n for i in range(62)] x=0 for i in range(n): dp[0][i] = (i + a[i])%n s[0][i] += a[i] # x = (x + a[x])%n for i in range(1,62): for j in range(n): dp[i][j] = dp[i-1][dp[i-1][j]] s[i][j] = s[i-1][j] + s[i-1][dp[i-1][j]] t = int(input()) for i in range(t): tt = int(input()) now = 0 ans = 0 for i in range(61,-1,-1): if tt>>i & 1: ans += s[i][now] now = dp[i][now] print(ans)