結果
問題 | No.748 yuki国のお財布事情 |
ユーザー | torikumino |
提出日時 | 2018-10-28 16:57:17 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,487 ms / 2,000 ms |
コード長 | 775 bytes |
コンパイル時間 | 266 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 183,768 KB |
最終ジャッジ日時 | 2024-04-29 22:29:52 |
合計ジャッジ時間 | 14,022 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 42 ms
52,224 KB |
testcase_01 | AC | 41 ms
51,968 KB |
testcase_02 | AC | 40 ms
52,352 KB |
testcase_03 | AC | 40 ms
52,224 KB |
testcase_04 | AC | 40 ms
52,096 KB |
testcase_05 | AC | 39 ms
52,224 KB |
testcase_06 | AC | 41 ms
52,480 KB |
testcase_07 | AC | 40 ms
52,480 KB |
testcase_08 | AC | 41 ms
52,352 KB |
testcase_09 | AC | 41 ms
52,480 KB |
testcase_10 | AC | 41 ms
52,480 KB |
testcase_11 | AC | 41 ms
52,608 KB |
testcase_12 | AC | 41 ms
52,480 KB |
testcase_13 | AC | 205 ms
86,164 KB |
testcase_14 | AC | 330 ms
96,128 KB |
testcase_15 | AC | 239 ms
87,552 KB |
testcase_16 | AC | 561 ms
111,264 KB |
testcase_17 | AC | 1,049 ms
149,828 KB |
testcase_18 | AC | 1,282 ms
157,592 KB |
testcase_19 | AC | 1,487 ms
183,768 KB |
testcase_20 | AC | 1,345 ms
177,828 KB |
testcase_21 | AC | 1,268 ms
161,864 KB |
testcase_22 | AC | 39 ms
52,096 KB |
testcase_23 | AC | 40 ms
51,840 KB |
testcase_24 | AC | 40 ms
52,352 KB |
testcase_25 | AC | 860 ms
134,264 KB |
testcase_26 | AC | 1,213 ms
169,744 KB |
testcase_27 | AC | 1,153 ms
172,860 KB |
testcase_28 | AC | 1,010 ms
150,012 KB |
ソースコード
n,m,k=map(int,input().split()) g = [{} for _ in range(n)] v=[] for _ in range(m): i,j,c=map(int,input().split()) g[i-1][j-1] = c g[j-1][i-1] = c v.append((c,i-1,j-1)) p = list(range(len(g))) s = [1]*len(g) def f(x): if x == p[x]: return x p[x] = f(p[x]) return p[x] def u(x, y): x = f(x) y = f(y) if s[x] > s[y]: x, y = y, x p[x] = p[y] s[y] += s[x] e = {(int(c),i,j) for i,r in enumerate(g) for j,c in r.items() if c != '-'} pp =0 for _ in range(k): c,i,j=v[int(input())-1] e.remove((c,i,j)) e.remove((c,j,i)) e.add((0,i,j)) e.add((0,j,i)) pp += c e = sorted(e) r = 0 d = 0 for c,i,j in e: if f(i)==f(j): r += c continue u(i,j) d += c print((r-d)//2)