| 提出番号 | 2130 |
|---|---|
| 提出者 | ikd |
| 言語 | C++ |
| 提出日時 | 2018-08-04 16:16:12 |
| 問題名 | (73)観光計画 |
| 結果 | WA |
| 点数 | 0% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 126ms | 33872KB |
| 2 | AC | 100% | 124ms | 39216KB |
| 3 | AC | 100% | 70ms | 22784KB |
| 4 | AC | 100% | 190ms | 48000KB |
| 5 | AC | 100% | 91ms | 28736KB |
| 6 | RE | 100% | 169ms | 43760KB |
| 7 | AC | 100% | 183ms | 51088KB |
| 8 | AC | 100% | 176ms | 52384KB |
| 9 | AC | 100% | 92ms | 25424KB |
| 10 | AC | 100% | 198ms | 64208KB |
| 11 | AC | 100% | 107ms | 29984KB |
| 12 | AC | 100% | 36ms | 17424KB |
| 13 | AC | 100% | 77ms | 32720KB |
| 14 | AC | 100% | 218ms | 52992KB |
| 15 | AC | 100% | 165ms | 46096KB |
| 16 | AC | 100% | 149ms | 41312KB |
| 17 | AC | 100% | 184ms | 59072KB |
| 18 | AC | 100% | 140ms | 40704KB |
| 19 | AC | 100% | 31ms | 23152KB |
| 20 | AC | 100% | 89ms | 34784KB |
| 21 | AC | 100% | 57ms | 21296KB |
| 22 | AC | 100% | 91ms | 28304KB |
| 23 | AC | 100% | 89ms | 29696KB |
| 24 | AC | 100% | 257ms | 67904KB |
| 25 | AC | 100% | 171ms | 56800KB |
| 26 | AC | 100% | 229ms | 56576KB |
| 27 | AC | 100% | 52ms | 19952KB |
| 28 | WA | 0% | 56ms | 18048KB |
| 29 | AC | 100% | 117ms | 37264KB |
| 30 | WA | 0% | 101ms | 37264KB |
| 31 | AC | 100% | 264ms | 63728KB |
| 32 | AC | 100% | 145ms | 38368KB |
| 33 | AC | 100% | 26ms | 13632KB |
| 34 | AC | 100% | 207ms | 50480KB |
| 35 | AC | 100% | 29ms | 12896KB |
| 36 | AC | 100% | 173ms | 48064KB |
| 37 | AC | 100% | 81ms | 26784KB |
| 38 | AC | 100% | 21ms | 10240KB |
| 39 | AC | 100% | 261ms | 61744KB |
| 40 | AC | 100% | 29ms | 16496KB |
| 41 | AC | 100% | 231ms | 55024KB |
| 42 | AC | 100% | 53ms | 21584KB |
| 43 | AC | 100% | 263ms | 64672KB |
| 44 | AC | 100% | 134ms | 38208KB |
| 45 | AC | 100% | 157ms | 45088KB |
| 46 | AC | 100% | 146ms | 43184KB |
| 47 | AC | 100% | 232ms | 55936KB |
| 48 | AC | 100% | 204ms | 56880KB |
| 49 | AC | 100% | 121ms | 35936KB |
| 50 | AC | 100% | 184ms | 49568KB |
| 51 | AC | 100% | 49ms | 17200KB |
| 52 | AC | 100% | 118ms | 32688KB |
| 53 | AC | 100% | 69ms | 23728KB |
| 54 | AC | 100% | 165ms | 42576KB |
| 55 | AC | 100% | 38ms | 18384KB |
| 56 | AC | 100% | 113ms | 38560KB |
| 57 | AC | 100% | 68ms | 33456KB |
| 58 | AC | 100% | 96ms | 30960KB |
| 59 | AC | 100% | 51ms | 26000KB |
| 60 | AC | 100% | 60ms | 21472KB |
| 61 | AC | 100% | 80ms | 27904KB |
| 62 | AC | 100% | 191ms | 48464KB |
| 63 | WA | 0% | 159ms | 46960KB |
| 64 | AC | 100% | 198ms | 53648KB |
| 65 | AC | 100% | 160ms | 47616KB |
| 66 | AC | 100% | 5ms | 8576KB |
| 67 | WA | 0% | 112ms | 38496KB |
| 68 | WA | 0% | 113ms | 38512KB |
| 69 | AC | 100% | 305ms | 76336KB |
| 70 | AC | 100% | 132ms | 40128KB |
#include<iostream>
#include<vector>
#include<algorithm>
#include<numeric>
#include<queue>
using namespace std;
#define rep(i,n) for(int i=0;i<(n);i++)
int main(){
using i64=long long;
struct Edge{
int to; i64 cost;
Edge(int t, i64 c): to(t), cost(c){}
};
int n, m, k; cin>> n>> m>> k;
vector<vector<Edge>> g(n+1);
rep(i, m){
int a, b, c; cin>> a>> b>> c;
a--; b--;
g[a].push_back(Edge{b, c});
g[b].push_back(Edge{a, c});
}
vector<int> h(k);
vector<i64> d(k);
rep(i, k) cin>> h[i]>> d[i];
i64 inf=1e18, mxd=1e12;
rep(i, k) g[n].push_back(Edge{h[i]-1, mxd-d[i]});
vector<i64> dist(n+1, inf);
struct P{
int v; i64 d;
P(int v, i64 d): v(v), d(d){}
bool operator<(const P &r)const{
return d>r.d;
}
};
priority_queue<P> q;
q.push(P{n, 0LL}); dist[n]=0;
while(q.size()>0){
auto p=q.top(); q.pop();
for(auto e: g[p.v]){
if(dist[p.v]+e.cost<dist[e.to]){
dist[e.to]=dist[p.v]+e.cost;
q.push(P{e.to, dist[e.to]});
}
}
}
auto count=[&](){
int cnt=0;
rep(i, n)if(dist[i]<mxd) cnt++;
return cnt;
};
cout<< count()<< endl;
return 0;
}