| 提出番号 | 1742 |
|---|---|
| 提出者 | dohatsutsu |
| 言語 | C++ |
| 提出日時 | 2018-08-04 13:42:55 |
| 問題名 | (73)観光計画 |
| 結果 | WA |
| 点数 | 0% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 125ms | 41168KB |
| 2 | AC | 100% | 126ms | 45216KB |
| 3 | AC | 100% | 60ms | 27760KB |
| 4 | AC | 100% | 200ms | 55184KB |
| 5 | AC | 100% | 100ms | 37568KB |
| 6 | AC | 100% | 166ms | 51712KB |
| 7 | AC | 100% | 192ms | 53744KB |
| 8 | AC | 100% | 175ms | 53216KB |
| 9 | AC | 100% | 95ms | 34416KB |
| 10 | AC | 100% | 219ms | 67472KB |
| 11 | AC | 100% | 92ms | 36848KB |
| 12 | AC | 100% | 36ms | 22384KB |
| 13 | AC | 100% | 92ms | 34560KB |
| 14 | AC | 100% | 217ms | 58448KB |
| 15 | AC | 100% | 154ms | 48848KB |
| 16 | AC | 100% | 152ms | 49456KB |
| 17 | AC | 100% | 196ms | 60928KB |
| 18 | AC | 100% | 148ms | 46704KB |
| 19 | AC | 100% | 47ms | 27328KB |
| 20 | AC | 100% | 88ms | 37120KB |
| 21 | AC | 100% | 58ms | 30272KB |
| 22 | AC | 100% | 94ms | 33776KB |
| 23 | AC | 100% | 105ms | 34848KB |
| 24 | AC | 100% | 243ms | 69168KB |
| 25 | AC | 100% | 191ms | 60240KB |
| 26 | AC | 100% | 224ms | 61056KB |
| 27 | AC | 100% | 57ms | 25920KB |
| 28 | WA | 0% | 55ms | 26480KB |
| 29 | AC | 100% | 117ms | 44672KB |
| 30 | WA | 0% | 96ms | 38944KB |
| 31 | AC | 100% | 263ms | 67152KB |
| 32 | AC | 100% | 150ms | 46384KB |
| 33 | AC | 100% | 31ms | 21088KB |
| 34 | AC | 100% | 197ms | 56944KB |
| 35 | AC | 100% | 31ms | 20544KB |
| 36 | AC | 100% | 185ms | 50112KB |
| 37 | AC | 100% | 80ms | 33520KB |
| 38 | AC | 100% | 22ms | 19216KB |
| 39 | AC | 100% | 251ms | 62800KB |
| 40 | AC | 100% | 32ms | 21200KB |
| 41 | AC | 100% | 225ms | 61056KB |
| 42 | AC | 100% | 63ms | 28480KB |
| 43 | AC | 100% | 227ms | 69520KB |
| 44 | AC | 100% | 135ms | 44080KB |
| 45 | AC | 100% | 235ms | 48928KB |
| 46 | AC | 100% | 163ms | 49776KB |
| 47 | AC | 100% | 227ms | 61408KB |
| 48 | AC | 100% | 217ms | 63008KB |
| 49 | AC | 100% | 130ms | 43840KB |
| 50 | AC | 100% | 196ms | 52016KB |
| 51 | AC | 100% | 54ms | 25536KB |
| 52 | AC | 100% | 117ms | 39472KB |
| 53 | AC | 100% | 72ms | 30368KB |
| 54 | AC | 100% | 139ms | 50976KB |
| 55 | AC | 100% | 38ms | 24048KB |
| 56 | AC | 100% | 131ms | 40000KB |
| 57 | AC | 100% | 74ms | 34512KB |
| 58 | AC | 100% | 92ms | 36592KB |
| 59 | AC | 100% | 54ms | 30352KB |
| 60 | AC | 100% | 69ms | 27536KB |
| 61 | AC | 100% | 91ms | 33776KB |
| 62 | AC | 100% | 194ms | 55680KB |
| 63 | WA | 0% | 154ms | 47424KB |
| 64 | AC | 100% | 212ms | 58704KB |
| 65 | AC | 100% | 193ms | 53056KB |
| 66 | AC | 100% | 6ms | 15920KB |
| 67 | WA | 0% | 116ms | 40992KB |
| 68 | WA | 0% | 130ms | 39104KB |
| 69 | AC | 100% | 315ms | 77920KB |
| 70 | AC | 100% | 147ms | 46512KB |
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct edge{
ll to,cost;
};
ll N,M,K;
vector< ll > d,h;
vector< edge > G[100005];
int main(){
cin>>N>>M>>K;
for(int i=0;i<M;i++){
ll a,b,c;
cin>>a>>b>>c;
a--,b--;
G[a].push_back( (edge){b,c} );
G[b].push_back( (edge){a,c} );
}
h.resize(K);
d.resize(K);
const ll tmp = (1LL<<20);
for(int i=0;i<K;i++){
cin>>h[i]>>d[i];
h[i]--;
G[ N ].push_back( (edge){ h[i], tmp - d[i] } );
}
vector<ll> dist( N+1 , (1LL<<60) );
dist[ N ] = 0;
typedef pair<ll,ll> P;
priority_queue< P , vector<P> , greater<P> > Q;
Q.push( P(0,N) );
while(!Q.empty()){
P p=Q.top();
Q.pop();
ll pos=p.second;
ll cost=p.first;
if( dist[pos] < cost )continue;
for(int i=0;i<(int)G[pos].size();i++){
edge e=G[pos][i];
if( cost + e.cost < dist[ e.to ] ){
dist[ e.to ] = cost + e.cost;
Q.push( P( dist[e.to] , e.to ) );
}
}
}
ll ans=0;
for(int i=0;i<N;i++)
if( dist[i] < tmp )ans++;
cout<<ans<<endl;
return 0;
}