結果
問題 |
No.3256 Permutation Equation
|
ユーザー |
![]() |
提出日時 | 2025-09-05 22:08:24 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 216 ms / 2,000 ms |
コード長 | 674 bytes |
コンパイル時間 | 236 ms |
コンパイル使用メモリ | 82,716 KB |
実行使用メモリ | 112,980 KB |
最終ジャッジ日時 | 2025-09-05 22:08:39 |
合計ジャッジ時間 | 11,655 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 48 |
ソースコード
n = int(input()) p = [int(x) % n for x in input().split()] q = [-1] * n visited = [False] * n todo = [None] * (n + 1) for i in range(n): if visited[i]: continue vs = [] while not visited[i]: visited[i] = True vs.append(i) i = p[i] m = len(vs) if m % 2: w = (m + 1) // 2 for i in range(m): q[vs[i]] = vs[(i+w)%m] elif not todo[m]: todo[m] = vs else: us = todo[m] todo[m] = None for i in range(m): q[us[i]] = vs[i] q[vs[i]] = us[(i+1)%m] if any(todo): print('No') else: print('Yes') print(*((x - 1) % n + 1 for x in q))