提出 #73306102
ソースコード 拡げる
N = int(input())
A = list(map(int,input().split()))
X = [-1]*N
ans = [-1]*N
for i in range(N):
if X[i] != -1:
continue
Y = []
M = i
while X[M] == -1:
X[M] = i
Y.append(M)
M = A[M]-1
if X[M] == i:
Z = Y[Y.index(M):]
L = len(Z)
k = pow(10,100,L)
for j in range(L):
ans[Z[j]] = Z[(j+k)%L]
for k in reversed(Y):
if ans[k] == -1:
ans[k] = ans[A[k]-1]
print(*[x+1 for x in ans])
提出情報
| 提出日時 | |
|---|---|
| 問題 | C - Sugoroku Destination |
| ユーザ | glaceon1020 |
| 言語 | Python (PyPy 3.11-v7.3.20) |
| 得点 | 300 |
| コード長 | 514 Byte |
| 結果 | AC |
| 実行時間 | 428 ms |
| メモリ | 236384 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 300 / 300 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00.txt | AC | 51 ms | 79776 KiB |
| 00_sample_01.txt | AC | 50 ms | 79776 KiB |
| 00_sample_02.txt | AC | 49 ms | 79936 KiB |
| 01_random_03.txt | AC | 428 ms | 201920 KiB |
| 01_random_04.txt | AC | 427 ms | 204008 KiB |
| 01_random_05.txt | AC | 417 ms | 203640 KiB |
| 01_random_06.txt | AC | 414 ms | 204020 KiB |
| 01_random_07.txt | AC | 418 ms | 204660 KiB |
| 01_random_08.txt | AC | 421 ms | 205224 KiB |
| 01_random_09.txt | AC | 425 ms | 206344 KiB |
| 01_random_10.txt | AC | 425 ms | 205608 KiB |
| 01_random_11.txt | AC | 197 ms | 138624 KiB |
| 01_random_12.txt | AC | 182 ms | 134564 KiB |
| 01_random_13.txt | AC | 374 ms | 186172 KiB |
| 01_random_14.txt | AC | 92 ms | 113016 KiB |
| 01_random_15.txt | AC | 422 ms | 206532 KiB |
| 01_random_16.txt | AC | 53 ms | 79936 KiB |
| 01_random_17.txt | AC | 408 ms | 236384 KiB |