| 提出番号 | 1813 |
|---|---|
| 提出者 | shot |
| 言語 | C++ |
| 提出日時 | 2018-08-04 14:01:23 |
| 問題名 | (73)観光計画 |
| 結果 | CE |
| 点数 | 0% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | CE | 0% | 0ms | 0KB |
| 2 | CE | 0% | 0ms | 0KB |
| 3 | CE | 0% | 0ms | 0KB |
| 4 | CE | 0% | 0ms | 0KB |
| 5 | CE | 0% | 0ms | 0KB |
| 6 | CE | 0% | 0ms | 0KB |
| 7 | CE | 0% | 0ms | 0KB |
| 8 | CE | 0% | 0ms | 0KB |
| 9 | CE | 0% | 0ms | 0KB |
| 10 | CE | 0% | 0ms | 0KB |
| 11 | CE | 0% | 0ms | 0KB |
| 12 | CE | 0% | 0ms | 0KB |
| 13 | CE | 0% | 0ms | 0KB |
| 14 | CE | 0% | 0ms | 0KB |
| 15 | CE | 0% | 0ms | 0KB |
| 16 | CE | 0% | 0ms | 0KB |
| 17 | CE | 0% | 0ms | 0KB |
| 18 | CE | 0% | 0ms | 0KB |
| 19 | CE | 0% | 0ms | 0KB |
| 20 | CE | 0% | 0ms | 0KB |
| 21 | CE | 0% | 0ms | 0KB |
| 22 | CE | 0% | 0ms | 0KB |
| 23 | CE | 0% | 0ms | 0KB |
| 24 | CE | 0% | 0ms | 0KB |
| 25 | CE | 0% | 0ms | 0KB |
| 26 | CE | 0% | 0ms | 0KB |
| 27 | CE | 0% | 0ms | 0KB |
| 28 | CE | 0% | 0ms | 0KB |
| 29 | CE | 0% | 0ms | 0KB |
| 30 | CE | 0% | 0ms | 0KB |
| 31 | CE | 0% | 0ms | 0KB |
| 32 | CE | 0% | 0ms | 0KB |
| 33 | CE | 0% | 0ms | 0KB |
| 34 | CE | 0% | 0ms | 0KB |
| 35 | CE | 0% | 0ms | 0KB |
| 36 | CE | 0% | 0ms | 0KB |
| 37 | CE | 0% | 0ms | 0KB |
| 38 | CE | 0% | 0ms | 0KB |
| 39 | CE | 0% | 0ms | 0KB |
| 40 | CE | 0% | 0ms | 0KB |
| 41 | CE | 0% | 0ms | 0KB |
| 42 | CE | 0% | 0ms | 0KB |
| 43 | CE | 0% | 0ms | 0KB |
| 44 | CE | 0% | 0ms | 0KB |
| 45 | CE | 0% | 0ms | 0KB |
| 46 | CE | 0% | 0ms | 0KB |
| 47 | CE | 0% | 0ms | 0KB |
| 48 | CE | 0% | 0ms | 0KB |
| 49 | CE | 0% | 0ms | 0KB |
| 50 | CE | 0% | 0ms | 0KB |
| 51 | CE | 0% | 0ms | 0KB |
| 52 | CE | 0% | 0ms | 0KB |
| 53 | CE | 0% | 0ms | 0KB |
| 54 | CE | 0% | 0ms | 0KB |
| 55 | CE | 0% | 0ms | 0KB |
| 56 | CE | 0% | 0ms | 0KB |
| 57 | CE | 0% | 0ms | 0KB |
| 58 | CE | 0% | 0ms | 0KB |
| 59 | CE | 0% | 0ms | 0KB |
| 60 | CE | 0% | 0ms | 0KB |
| 61 | CE | 0% | 0ms | 0KB |
| 62 | CE | 0% | 0ms | 0KB |
| 63 | CE | 0% | 0ms | 0KB |
| 64 | CE | 0% | 0ms | 0KB |
| 65 | CE | 0% | 0ms | 0KB |
| 66 | CE | 0% | 0ms | 0KB |
| 67 | CE | 0% | 0ms | 0KB |
| 68 | CE | 0% | 0ms | 0KB |
| 69 | CE | 0% | 0ms | 0KB |
| 70 | CE | 0% | 0ms | 0KB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
struct Edge {
int to, cost;
};
signed main() {
cin.tie(0);
ios_base::sync_with_stdio(0);
cout << fixed << setprecision(12);
int N, M, K;
cin >> N >> M >> K;
vector<Edge> G[N];
for ( int i = 0; i < M; i++ ) {
int a, b, c;
cin >> a >> b >> c;
a--; b--;
G[a].emplace_back(Edge{b, c});
G[b].emplace_back(Edge{a, c});
}
typedef pair<int, int> P;
priority_queue<P> Q;
for ( int i = 0; i < K; i++ ) {
int h, d;
cin >> h >> d;
h--;
Q.push({d, h});
}
bool used[N] = {};
int ans = 0;
while ( !Q.empty() ) {
P p = Q.top(); Q.pop();
int d = p.first, h = p.second;
if ( used[h] ) continue;
used[h] = true;
ans++;
for ( Edge u : G[h] ) {
int to = u.to, cost = u.cost;
if ( d-cost < 0 ) continue;
Q.push({d-cost, to});
}
}
cout << ans << endl;
return 0;
}