結果
問題 |
No.241 出席番号(1)
|
ユーザー |
![]() |
提出日時 | 2025-05-01 13:58:30 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 40 ms / 2,000 ms |
コード長 | 769 bytes |
コンパイル時間 | 518 ms |
コンパイル使用メモリ | 82,232 KB |
実行使用メモリ | 53,976 KB |
最終ジャッジ日時 | 2025-05-01 13:58:34 |
合計ジャッジ時間 | 3,628 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 29 |
ソースコード
N = int(input()) A = [int(input()) for _ in range(N)] B = [[] for _ in range(N)] rem = [] tmp = N for i in range(N): if A[i] < N: B[A[i]].append(i) tmp = A[i] if tmp == N: for i in range(N): print(i) exit() if len(B[tmp]) == N: print(-1) exit() nu = [] C = [] for i in range(N): if B[i] == []: nu.append(i) else: C.append((len(B[i]),i)) C.sort() NC = len(C) ans = [-1] * N if NC > 1: nu.append(C[-1][1]) for _,c in C: for b in B[c]: ans[b] = nu.pop() nu.append(c) nu.pop() elif NC == 1: c = C[0][1] for b in B[c]: ans[b] =nu.pop() nu.append(c) for i in range(N): if ans[i] == -1: ans[i] = nu.pop() for a in ans: print(a)