結果
問題 | No.748 yuki国のお財布事情 |
ユーザー |
![]() |
提出日時 | 2018-10-21 13:30:47 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,151 bytes |
コンパイル時間 | 133 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 65,544 KB |
最終ジャッジ日時 | 2024-11-19 03:23:22 |
合計ジャッジ時間 | 26,791 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 13 WA * 5 TLE * 8 |
ソースコード
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)