結果
問題 |
No.1373 Directed Operations
|
ユーザー |
|
提出日時 | 2021-02-05 22:07:23 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 537 bytes |
コンパイル時間 | 172 ms |
コンパイル使用メモリ | 82,688 KB |
実行使用メモリ | 98,432 KB |
最終ジャッジ日時 | 2024-07-02 12:36:16 |
合計ジャッジ時間 | 7,177 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 WA * 1 |
other | AC * 9 WA * 10 |
ソースコード
import sys sys.setrecursionlimit(10 ** 6) n = int(input()) a = list(map(int, input().split())) a2 = [(a[i], i) for i in range(n - 1)] a2.sort(reverse=True) v = [0] * n v[0] = 1 ans = [0] * (n - 1) G = [[] for i in range(n)] for i in range(n - 1): if a[a2[i][1]] + i < n: ans[a2[i][1]] = i + 1 G[i].append(i + a2[i][0]) else: exit(print("NO")) def dfs(now): v[now] = 1 for nex in G[now]: dfs(nex) if all(v for i in range(n)): print("YES") print(*ans, sep="\n") else: print("NO")