結果
問題 | No.748 yuki国のお財布事情 |
ユーザー | twkmath |
提出日時 | 2018-10-21 13:30:47 |
言語 | Python3 (3.12.2 + numpy 1.26.4 + scipy 1.12.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,151 bytes |
コンパイル時間 | 133 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 65,544 KB |
最終ジャッジ日時 | 2024-11-19 03:23:22 |
合計ジャッジ時間 | 26,791 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 26 ms
17,828 KB |
testcase_01 | AC | 27 ms
41,564 KB |
testcase_02 | AC | 27 ms
17,696 KB |
testcase_03 | AC | 26 ms
46,472 KB |
testcase_04 | AC | 28 ms
17,824 KB |
testcase_05 | AC | 27 ms
49,684 KB |
testcase_06 | AC | 26 ms
17,824 KB |
testcase_07 | AC | 26 ms
45,612 KB |
testcase_08 | AC | 27 ms
17,700 KB |
testcase_09 | AC | 27 ms
48,564 KB |
testcase_10 | WA | - |
testcase_11 | AC | 27 ms
53,176 KB |
testcase_12 | WA | - |
testcase_13 | WA | - |
testcase_14 | WA | - |
testcase_15 | WA | - |
testcase_16 | TLE | - |
testcase_17 | TLE | - |
testcase_18 | TLE | - |
testcase_19 | TLE | - |
testcase_20 | TLE | - |
testcase_21 | TLE | - |
testcase_22 | AC | 27 ms
10,880 KB |
testcase_23 | AC | 27 ms
10,880 KB |
testcase_24 | AC | 27 ms
11,008 KB |
testcase_25 | AC | 517 ms
24,812 KB |
testcase_26 | TLE | - |
testcase_27 | TLE | - |
testcase_28 | AC | 567 ms
65,544 KB |
ソースコード
N,M,K=[int(i) for i in input().split()] e=[];s=0 for j in range(M): a,b,c=[int(i) for i in input().split()] e.append((c,a,b)) s+=c o=sorted(e) p={}; pn=0 l=[-1 for _ in range(N+1)] for j in range(K): i=int(input())-1 a,b=e[i][1:3] # x=-1;y=-1 # for k,q in enumerate(p): # if a in q: x=k # if b in q: y=k # if x<0 and y<0: p.append({a,b}) # elif x<0: p[y].add(a) # elif y<0: p[x].add(b) # elif x!=y: p[x]|=p[y]; del p[y] if l[a]<0 and l[b]<0: p[pn]={a,b}; l[a]=pn; l[b]=pn; pn+=1 elif l[a]<0: p[l[b]].add(a); l[a]=l[b] elif l[b]<0: p[l[a]].add(b); l[b]=l[a] elif l[a]!=l[b]: t=l[b] p[l[a]]|=p[t] for i in p[t]: l[i]=l[a] del p[t] s-=e[i][0] for f in o: a,b=f[1:3] # x=-1;y=-1 # for k,q in enumerate(p): # if a in q: x=k # if b in q: y=k # if x<0 and y<0: p.append({a,b}) # elif x<0: p[y].add(a) # elif y<0: p[x].add(b) # elif x!=y: p[x]|=p[y]; del p[y] if l[a]<0 and l[b]<0: p[pn]={a,b}; l[a]=pn; l[b]=pn; pn+=1 elif l[a]<0: p[l[b]].add(a); l[a]=l[b] elif l[b]<0: p[l[a]].add(b); l[b]=l[a] elif l[a]!=l[b]: t=l[b] p[l[a]]|=p[t] for i in p[t]: l[i]=l[a] del p[t] else: continue s-=f[0] print(s)