| 提出番号 | 1657 |
|---|---|
| 提出者 | beet |
| 言語 | C++ |
| 提出日時 | 2018-08-04 13:23:34 |
| 問題名 | (73)観光計画 |
| 結果 | AC |
| 点数 | 100% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 125ms | 32800KB |
| 2 | AC | 100% | 151ms | 37216KB |
| 3 | AC | 100% | 57ms | 24112KB |
| 4 | AC | 100% | 189ms | 46320KB |
| 5 | AC | 100% | 99ms | 27904KB |
| 6 | AC | 100% | 155ms | 41792KB |
| 7 | AC | 100% | 164ms | 48480KB |
| 8 | AC | 100% | 192ms | 49104KB |
| 9 | AC | 100% | 78ms | 25424KB |
| 10 | AC | 100% | 229ms | 52976KB |
| 11 | AC | 100% | 104ms | 30864KB |
| 12 | AC | 100% | 38ms | 19808KB |
| 13 | AC | 100% | 104ms | 35408KB |
| 14 | AC | 100% | 212ms | 54464KB |
| 15 | AC | 100% | 166ms | 41488KB |
| 16 | AC | 100% | 161ms | 41584KB |
| 17 | AC | 100% | 205ms | 46592KB |
| 18 | AC | 100% | 128ms | 35040KB |
| 19 | AC | 100% | 32ms | 17056KB |
| 20 | AC | 100% | 106ms | 35472KB |
| 21 | AC | 100% | 49ms | 21200KB |
| 22 | AC | 100% | 81ms | 28736KB |
| 23 | AC | 100% | 85ms | 30496KB |
| 24 | AC | 100% | 275ms | 63536KB |
| 25 | AC | 100% | 199ms | 45376KB |
| 26 | AC | 100% | 223ms | 54576KB |
| 27 | AC | 100% | 54ms | 21168KB |
| 28 | AC | 100% | 52ms | 19104KB |
| 29 | AC | 100% | 134ms | 35504KB |
| 30 | AC | 100% | 90ms | 33456KB |
| 31 | AC | 100% | 220ms | 56800KB |
| 32 | AC | 100% | 120ms | 38560KB |
| 33 | AC | 100% | 32ms | 13392KB |
| 34 | AC | 100% | 194ms | 48272KB |
| 35 | AC | 100% | 27ms | 13904KB |
| 36 | AC | 100% | 150ms | 52240KB |
| 37 | AC | 100% | 106ms | 26848KB |
| 38 | AC | 100% | 22ms | 10480KB |
| 39 | AC | 100% | 267ms | 63104KB |
| 40 | AC | 100% | 36ms | 19360KB |
| 41 | AC | 100% | 191ms | 55952KB |
| 42 | AC | 100% | 62ms | 19120KB |
| 43 | AC | 100% | 259ms | 58400KB |
| 44 | AC | 100% | 142ms | 37280KB |
| 45 | AC | 100% | 137ms | 41664KB |
| 46 | AC | 100% | 158ms | 41248KB |
| 47 | AC | 100% | 241ms | 59232KB |
| 48 | AC | 100% | 226ms | 57680KB |
| 49 | AC | 100% | 139ms | 37088KB |
| 50 | AC | 100% | 190ms | 50528KB |
| 51 | AC | 100% | 52ms | 18224KB |
| 52 | AC | 100% | 123ms | 33840KB |
| 53 | AC | 100% | 64ms | 21312KB |
| 54 | AC | 100% | 138ms | 41696KB |
| 55 | AC | 100% | 42ms | 19712KB |
| 56 | AC | 100% | 112ms | 43056KB |
| 57 | AC | 100% | 83ms | 31472KB |
| 58 | AC | 100% | 78ms | 25552KB |
| 59 | AC | 100% | 50ms | 18112KB |
| 60 | AC | 100% | 61ms | 23520KB |
| 61 | AC | 100% | 95ms | 27184KB |
| 62 | AC | 100% | 198ms | 45792KB |
| 63 | AC | 100% | 166ms | 47824KB |
| 64 | AC | 100% | 201ms | 49792KB |
| 65 | AC | 100% | 201ms | 48720KB |
| 66 | AC | 100% | 9ms | 11216KB |
| 67 | AC | 100% | 111ms | 33824KB |
| 68 | AC | 100% | 126ms | 41632KB |
| 69 | AC | 100% | 277ms | 64240KB |
| 70 | AC | 100% | 127ms | 39424KB |
#include<bits/stdc++.h>
using namespace std;
using Int = long long;
template<typename T1,typename T2> inline void chmin(T1 &a,T2 b){if(a>b) a=b;}
template<typename T1,typename T2> inline void chmax(T1 &a,T2 b){if(a<b) a=b;}
//INSERT ABOVE HERE
signed main(){
Int n,m,k;
cin>>n>>m>>k;
using P = pair<Int, Int>;
vector<vector<P> > G(n);
for(Int i=0;i<m;i++){
Int a,b,c;
cin>>a>>b>>c;
a--;b--;
G[a].emplace_back(b,c);
G[b].emplace_back(a,c);
}
vector<Int> dp(n,-1);
for(Int i=0;i<k;i++){
Int x,y;
cin>>x>>y;
x--;
chmax(dp[x],y);
}
priority_queue<P> pq;
for(Int i=0;i<n;i++){
if(!dp[i]) continue;
pq.emplace(dp[i],i);
}
while(!pq.empty()){
Int d,v;
tie(d,v)=pq.top();pq.pop();
if(d<dp[v]) continue;
for(P e:G[v]){
Int u,c;
tie(u,c)=e;
if(dp[u]<dp[v]-c){
dp[u]=dp[v]-c;
pq.emplace(dp[u],u);
}
}
}
Int ans=0;
for(Int i=0;i<n;i++) ans+=dp[i]>=0;
cout<<ans<<endl;
return 0;
}