| 提出番号 | 2124 |
|---|---|
| 提出者 | ikd |
| 言語 | C++ |
| 提出日時 | 2018-08-04 15:54:58 |
| 問題名 | (73)観光計画 |
| 結果 | WA |
| 点数 | 0% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | WA | 0% | 122ms | 0KB |
| 2 | WA | 0% | 132ms | 0KB |
| 3 | WA | 0% | 53ms | 0KB |
| 4 | WA | 0% | 161ms | 0KB |
| 5 | WA | 0% | 102ms | 0KB |
| 6 | WA | 0% | 154ms | 0KB |
| 7 | WA | 0% | 165ms | 0KB |
| 8 | WA | 0% | 157ms | 0KB |
| 9 | WA | 0% | 95ms | 0KB |
| 10 | WA | 0% | 204ms | 0KB |
| 11 | WA | 0% | 87ms | 0KB |
| 12 | WA | 0% | 35ms | 0KB |
| 13 | WA | 0% | 76ms | 0KB |
| 14 | WA | 0% | 200ms | 0KB |
| 15 | WA | 0% | 118ms | 0KB |
| 16 | WA | 0% | 152ms | 0KB |
| 17 | WA | 0% | 172ms | 0KB |
| 18 | WA | 0% | 117ms | 0KB |
| 19 | WA | 0% | 34ms | 0KB |
| 20 | WA | 0% | 80ms | 0KB |
| 21 | WA | 0% | 56ms | 0KB |
| 22 | WA | 0% | 91ms | 0KB |
| 23 | WA | 0% | 92ms | 0KB |
| 24 | WA | 0% | 226ms | 0KB |
| 25 | WA | 0% | 169ms | 0KB |
| 26 | WA | 0% | 202ms | 0KB |
| 27 | WA | 0% | 52ms | 0KB |
| 28 | WA | 0% | 56ms | 0KB |
| 29 | WA | 0% | 111ms | 0KB |
| 30 | WA | 0% | 89ms | 0KB |
| 31 | WA | 0% | 192ms | 0KB |
| 32 | WA | 0% | 117ms | 0KB |
| 33 | WA | 0% | 29ms | 0KB |
| 34 | WA | 0% | 215ms | 0KB |
| 35 | WA | 0% | 40ms | 0KB |
| 36 | WA | 0% | 132ms | 0KB |
| 37 | WA | 0% | 89ms | 0KB |
| 38 | WA | 0% | 28ms | 0KB |
| 39 | WA | 0% | 201ms | 0KB |
| 40 | WA | 0% | 32ms | 0KB |
| 41 | WA | 0% | 215ms | 0KB |
| 42 | WA | 0% | 55ms | 0KB |
| 43 | WA | 0% | 224ms | 0KB |
| 44 | WA | 0% | 131ms | 0KB |
| 45 | WA | 0% | 140ms | 0KB |
| 46 | WA | 0% | 136ms | 0KB |
| 47 | WA | 0% | 206ms | 0KB |
| 48 | WA | 0% | 215ms | 0KB |
| 49 | WA | 0% | 112ms | 0KB |
| 50 | WA | 0% | 175ms | 0KB |
| 51 | WA | 0% | 45ms | 0KB |
| 52 | WA | 0% | 103ms | 0KB |
| 53 | WA | 0% | 64ms | 0KB |
| 54 | WA | 0% | 163ms | 0KB |
| 55 | WA | 0% | 46ms | 0KB |
| 56 | WA | 0% | 120ms | 0KB |
| 57 | WA | 0% | 65ms | 0KB |
| 58 | WA | 0% | 73ms | 0KB |
| 59 | WA | 0% | 43ms | 0KB |
| 60 | WA | 0% | 61ms | 0KB |
| 61 | WA | 0% | 88ms | 0KB |
| 62 | WA | 0% | 181ms | 0KB |
| 63 | AC | 100% | 148ms | 37696KB |
| 64 | WA | 0% | 166ms | 0KB |
| 65 | WA | 0% | 163ms | 0KB |
| 66 | WA | 0% | 12ms | 0KB |
| 67 | WA | 0% | 88ms | 0KB |
| 68 | WA | 0% | 92ms | 0KB |
| 69 | WA | 0% | 248ms | 0KB |
| 70 | WA | 0% | 141ms | 0KB |
#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(){
struct Edge{
int to, cost;
Edge(int t, int 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), d(k);
rep(i, k) cin>> h[i]>> d[i];
int mxd=*max_element(d.begin(), d.end());
rep(i, k) g[n].push_back(Edge{h[i]-1, mxd-d[i]});
using i64=long long;
i64 inf=1e18;
vector<i64> dist(n+1, inf);
struct P{
int v; i64 d;
bool operator<(const P &r)const{
return d>r.d;
}
};
priority_queue<P> q;
q.push(P{n, 0}); 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.cost]});
}
}
}
auto count=[&](){
int cnt=0;
rep(i, n)if(dist[i]<=mxd) cnt++;
return cnt;
};
cout<< count()<< endl;
return 0;
}