| 提出番号 | 1745 |
|---|---|
| 提出者 | dohatsutsu |
| 言語 | C++ |
| 提出日時 | 2018-08-04 13:43:55 |
| 問題名 | (73)観光計画 |
| 結果 | RE |
| 点数 | 0% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 105ms | 41168KB |
| 2 | AC | 100% | 152ms | 45216KB |
| 3 | AC | 100% | 66ms | 27760KB |
| 4 | AC | 100% | 186ms | 55168KB |
| 5 | AC | 100% | 105ms | 37584KB |
| 6 | AC | 100% | 162ms | 51712KB |
| 7 | AC | 100% | 189ms | 53712KB |
| 8 | AC | 100% | 159ms | 53200KB |
| 9 | AC | 100% | 93ms | 34416KB |
| 10 | AC | 100% | 223ms | 67472KB |
| 11 | AC | 100% | 101ms | 36864KB |
| 12 | AC | 100% | 45ms | 22384KB |
| 13 | AC | 100% | 87ms | 34576KB |
| 14 | AC | 100% | 217ms | 58448KB |
| 15 | AC | 100% | 165ms | 48832KB |
| 16 | AC | 100% | 168ms | 49456KB |
| 17 | AC | 100% | 196ms | 60928KB |
| 18 | AC | 100% | 150ms | 46720KB |
| 19 | AC | 100% | 36ms | 27328KB |
| 20 | AC | 100% | 92ms | 37136KB |
| 21 | AC | 100% | 59ms | 30272KB |
| 22 | AC | 100% | 94ms | 33792KB |
| 23 | AC | 100% | 96ms | 34832KB |
| 24 | AC | 100% | 271ms | 69168KB |
| 25 | AC | 100% | 189ms | 60240KB |
| 26 | AC | 100% | 223ms | 61040KB |
| 27 | AC | 100% | 56ms | 25920KB |
| 28 | AC | 100% | 55ms | 26480KB |
| 29 | AC | 100% | 133ms | 44672KB |
| 30 | AC | 100% | 97ms | 38928KB |
| 31 | AC | 100% | 240ms | 67152KB |
| 32 | AC | 100% | 146ms | 46384KB |
| 33 | AC | 100% | 31ms | 21056KB |
| 34 | AC | 100% | 172ms | 56928KB |
| 35 | AC | 100% | 27ms | 20544KB |
| 36 | AC | 100% | 186ms | 50112KB |
| 37 | AC | 100% | 92ms | 33520KB |
| 38 | AC | 100% | 19ms | 19232KB |
| 39 | AC | 100% | 270ms | 62816KB |
| 40 | AC | 100% | 33ms | 21200KB |
| 41 | AC | 100% | 194ms | 61040KB |
| 42 | AC | 100% | 61ms | 28464KB |
| 43 | AC | 100% | 260ms | 69520KB |
| 44 | AC | 100% | 143ms | 44064KB |
| 45 | AC | 100% | 168ms | 48928KB |
| 46 | AC | 100% | 233ms | 49760KB |
| 47 | AC | 100% | 220ms | 61392KB |
| 48 | AC | 100% | 241ms | 63008KB |
| 49 | AC | 100% | 130ms | 43840KB |
| 50 | AC | 100% | 192ms | 52000KB |
| 51 | AC | 100% | 50ms | 25536KB |
| 52 | AC | 100% | 107ms | 39472KB |
| 53 | AC | 100% | 68ms | 30368KB |
| 54 | AC | 100% | 137ms | 50992KB |
| 55 | AC | 100% | 44ms | 24048KB |
| 56 | AC | 100% | 123ms | 39984KB |
| 57 | AC | 100% | 72ms | 34528KB |
| 58 | AC | 100% | 79ms | 36624KB |
| 59 | AC | 100% | 52ms | 30336KB |
| 60 | AC | 100% | 65ms | 27536KB |
| 61 | AC | 100% | 90ms | 33760KB |
| 62 | AC | 100% | 175ms | 55680KB |
| 63 | AC | 100% | 136ms | 47424KB |
| 64 | AC | 100% | 206ms | 58720KB |
| 65 | AC | 100% | 199ms | 53072KB |
| 66 | AC | 100% | 5ms | 15920KB |
| 67 | AC | 100% | 111ms | 40992KB |
| 68 | AC | 100% | 161ms | 39088KB |
| 69 | AC | 100% | 278ms | 77920KB |
| 70 | AC | 100% | 153ms | 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;
}