結果
問題 |
No.3025 Chocol∀te
|
ユーザー |
👑 ![]() |
提出日時 | 2025-02-13 21:07:46 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,318 ms / 2,000 ms |
コード長 | 1,215 bytes |
コンパイル時間 | 316 ms |
コンパイル使用メモリ | 82,732 KB |
実行使用メモリ | 127,352 KB |
最終ジャッジ日時 | 2025-02-14 23:10:02 |
合計ジャッジ時間 | 38,763 ms |
ジャッジサーバーID (参考情報) |
judge7 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 77 |
ソースコード
import sys input = sys.stdin.readline N, M = map(int, input().split()) G = [set() for _ in range(N)] A = [0] * N B = 500 big = [0] * N big_deg = [] sum = [0] * N def add(a, b): if b in G[a]: G[a].remove(b) if big[a] == 0: sum[b] -= A[a] else: G[a].add(b) if big[a] == 0: sum[b] += A[a] if B == len(G[a]): big_deg.append(a) big[a] = 1 for x in G[a]: sum[x] -= A[a] def upd_A(ind, a): diff = a - A[ind] A[ind] = a if big[ind] == 0: for x in G[ind]: sum[x] += diff for i in range(M): a, b = map(int, input().split()) a -= 1; b -= 1 add(a, b) add(b, a) fa = list(map(int, input().split())) for i in range(N): upd_A(i, fa[i]) Q = int(input()) for _ in range(Q): t = list(map(int, input().split())) if t[0] == 1: a, b = t[1], t[2] a -= 1; b -= 1 add(a, b) add(b, a) if t[0] == 2: i, a = t[1], t[2] i -= 1 upd_A(i, a) if t[0] == 3: c = t[1] c -= 1 ans = sum[c] for x in big_deg: if c in G[x]: ans += A[x] print(ans)