結果

問題 No.1013 〇マス進む
ユーザー nehan_der_thal
提出日時 2020-03-21 01:33:02
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 877 ms / 2,000 ms
コード長 671 bytes
コンパイル時間 214 ms
コンパイル使用メモリ 82,324 KB
実行使用メモリ 159,704 KB
最終ジャッジ日時 2024-12-16 01:51:37
合計ジャッジ時間 25,340 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 62
権限があれば一括ダウンロードができます

ソースコード

diff #

N, K = map(int, input().split())
P = list(map(int, input().split()))
d = [0]*N
for i in range(N):
    d[i] = (P[i]+i) % N
M = 40
step = [[0]*(M+1) for _ in range(N)]
step2 = [[0]*(M+1) for _ in range(N)]
for i in range(N):
    step[i][0] = d[i]
    step2[i][0] = int(d[i]<=i)

for i in range(1, M+1):
    for j in range(N):
        step[j][i] = step[step[j][i-1]][i-1]
        step2[j][i] = step2[j][i-1] + step2[step[j][i-1]][i-1]
#print(step2[0])

for i in range(N):
    tmp = K
    c = i
    cy = 0
    for j in range(M+1):
        if tmp % 2:
            cy += step2[c][j]
            c = step[c][j]
#            print(i, c, cy)
        tmp //= 2
    print(c+1+cy*N)
0