結果
問題 |
No.3256 Permutation Equation
|
ユーザー |
![]() |
提出日時 | 2025-09-06 00:20:05 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,074 bytes |
コンパイル時間 | 396 ms |
コンパイル使用メモリ | 82,764 KB |
実行使用メモリ | 115,040 KB |
最終ジャッジ日時 | 2025-09-06 00:20:21 |
合計ジャッジ時間 | 12,403 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 WA * 25 |
ソースコード
def main(): Ans = [-1] * n v = [0] * n E = [[] for _ in range(n+1)] for i in range(n): if v[i]: continue now = i cnt = 0 while not v[now]: cnt += 1 v[now] = 1 now = A[now] % n now = i if cnt % 2: while Ans[now] == -1: Ans[now] = A[A[now]%n] now = A[now] % n else: if E[cnt]: Ans[i] = E[cnt].pop() now = Ans[i] % n p = A[i] while Ans[now] == -1: Ans[now] = p p, now = A[now], p % n else: E[cnt].append(i if i else i+n) return Ans n = int(input()) A = list(map(int, input().split())) def check(): for i in range(len(ans)): if A[i] != ans[ans[i]%n]: return 0 return 1 ans = main() if min(ans) != -1: if not check(): print("No") else: assert check() print("Yes") print(*ans) else: print("No")