| 提出番号 | 2059 |
|---|---|
| 提出者 | _ei1333 |
| 言語 | C++ |
| 提出日時 | 2018-08-04 15:08:02 |
| 問題名 | (73)観光計画 |
| 結果 | AC |
| 点数 | 100% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 112ms | 37024KB |
| 2 | AC | 100% | 145ms | 40192KB |
| 3 | AC | 100% | 60ms | 25408KB |
| 4 | AC | 100% | 214ms | 49696KB |
| 5 | AC | 100% | 121ms | 34928KB |
| 6 | AC | 100% | 189ms | 46528KB |
| 7 | AC | 100% | 164ms | 44416KB |
| 8 | AC | 100% | 138ms | 43360KB |
| 9 | AC | 100% | 228ms | 33568KB |
| 10 | AC | 100% | 223ms | 50752KB |
| 11 | AC | 100% | 104ms | 34400KB |
| 12 | AC | 100% | 34ms | 21488KB |
| 13 | AC | 100% | 77ms | 29632KB |
| 14 | AC | 100% | 232ms | 52864KB |
| 15 | AC | 100% | 145ms | 39136KB |
| 16 | AC | 100% | 169ms | 46528KB |
| 17 | AC | 100% | 159ms | 44416KB |
| 18 | AC | 100% | 139ms | 39136KB |
| 19 | AC | 100% | 30ms | 19072KB |
| 20 | AC | 100% | 96ms | 30688KB |
| 21 | AC | 100% | 100ms | 29712KB |
| 22 | AC | 100% | 85ms | 30688KB |
| 23 | AC | 100% | 88ms | 32368KB |
| 24 | AC | 100% | 240ms | 58144KB |
| 25 | AC | 100% | 189ms | 43360KB |
| 26 | AC | 100% | 230ms | 52864KB |
| 27 | AC | 100% | 48ms | 23392KB |
| 28 | AC | 100% | 53ms | 25072KB |
| 29 | AC | 100% | 151ms | 39136KB |
| 30 | AC | 100% | 73ms | 29632KB |
| 31 | AC | 100% | 216ms | 54976KB |
| 32 | AC | 100% | 178ms | 43360KB |
| 33 | AC | 100% | 28ms | 19072KB |
| 34 | AC | 100% | 185ms | 51808KB |
| 35 | AC | 100% | 29ms | 19744KB |
| 36 | AC | 100% | 158ms | 46496KB |
| 37 | AC | 100% | 75ms | 29808KB |
| 38 | AC | 100% | 24ms | 18528KB |
| 39 | AC | 100% | 229ms | 57088KB |
| 40 | AC | 100% | 30ms | 21056KB |
| 41 | AC | 100% | 254ms | 54976KB |
| 42 | AC | 100% | 57ms | 24352KB |
| 43 | AC | 100% | 270ms | 58144KB |
| 44 | AC | 100% | 137ms | 39392KB |
| 45 | AC | 100% | 139ms | 39136KB |
| 46 | AC | 100% | 174ms | 44416KB |
| 47 | AC | 100% | 238ms | 57296KB |
| 48 | AC | 100% | 270ms | 57088KB |
| 49 | AC | 100% | 133ms | 41616KB |
| 50 | AC | 100% | 170ms | 46528KB |
| 51 | AC | 100% | 49ms | 24528KB |
| 52 | AC | 100% | 122ms | 37184KB |
| 53 | AC | 100% | 68ms | 25408KB |
| 54 | AC | 100% | 223ms | 48448KB |
| 55 | AC | 100% | 41ms | 22240KB |
| 56 | AC | 100% | 96ms | 37024KB |
| 57 | AC | 100% | 62ms | 26464KB |
| 58 | AC | 100% | 88ms | 28576KB |
| 59 | AC | 100% | 47ms | 21184KB |
| 60 | AC | 100% | 54ms | 25776KB |
| 61 | AC | 100% | 85ms | 29632KB |
| 62 | AC | 100% | 228ms | 49696KB |
| 63 | AC | 100% | 146ms | 41248KB |
| 64 | AC | 100% | 187ms | 48640KB |
| 65 | AC | 100% | 195ms | 47584KB |
| 66 | AC | 100% | 5ms | 15664KB |
| 67 | AC | 100% | 93ms | 30688KB |
| 68 | AC | 100% | 99ms | 34912KB |
| 69 | AC | 100% | 283ms | 61312KB |
| 70 | AC | 100% | 148ms | 42496KB |
#include <bits/stdc++.h>
#define rep(i, a, n) for(int i = a; i < n; i++)
#define int long long
#define chmin(a, b) a = min(a, b)
using namespace std;
typedef pair<int, int> P;
const int INF = 1e15;
struct edge{
int to, cost;
};
int n, m, k;
vector<edge> G[100010];
int d[100010];
void dfs(int v, int p, int now){
if(d[v] > now) return;
d[v] = now;
rep(i, 0, G[v].size()){
int nxtv = G[v][i].to;
int nxtn = now - G[v][i].cost;
if(nxtv == p || nxtn < 0) continue;
dfs(nxtv, v, nxtn);
}
}
signed main(){
cin >> n >> m >> k;
rep(i, 0, m){
int a, b, c;
cin >> a >> b >> c;
a--; b--;
G[a].push_back({b, c});
G[b].push_back({a, c});
}
rep(i, 0, n) d[i] = -1;
vector<P> h(k);
rep(i, 0, k){
cin >> h[i].second >> h[i].first;
h[i].second--;
}
sort(h.rbegin(), h.rend());
rep(i, 0, k){
dfs(h[i].second, -1, h[i].first);
}
int ans = 0;
rep(i, 0, n) if(d[i] >= 0) ans++;
cout << ans << endl;
}