| 提出番号 | 1820 |
|---|---|
| 提出者 | shot |
| 言語 | C++ |
| 提出日時 | 2018-08-04 14:05:22 |
| 問題名 | (73)観光計画 |
| 結果 | AC |
| 点数 | 100% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 74ms | 36288KB |
| 2 | AC | 100% | 78ms | 40288KB |
| 3 | AC | 100% | 25ms | 20096KB |
| 4 | AC | 100% | 116ms | 58160KB |
| 5 | AC | 100% | 70ms | 41872KB |
| 6 | AC | 100% | 109ms | 53888KB |
| 7 | AC | 100% | 93ms | 46128KB |
| 8 | AC | 100% | 89ms | 46096KB |
| 9 | AC | 100% | 67ms | 40624KB |
| 10 | AC | 100% | 130ms | 59072KB |
| 11 | AC | 100% | 52ms | 30048KB |
| 12 | AC | 100% | 15ms | 15552KB |
| 13 | AC | 100% | 40ms | 27136KB |
| 14 | AC | 100% | 126ms | 61488KB |
| 15 | AC | 100% | 70ms | 39024KB |
| 16 | AC | 100% | 98ms | 53728KB |
| 17 | AC | 100% | 102ms | 43744KB |
| 18 | AC | 100% | 84ms | 38000KB |
| 19 | AC | 100% | 14ms | 15232KB |
| 20 | AC | 100% | 45ms | 28848KB |
| 21 | AC | 100% | 42ms | 28256KB |
| 22 | AC | 100% | 41ms | 25936KB |
| 23 | AC | 100% | 45ms | 27584KB |
| 24 | AC | 100% | 141ms | 60688KB |
| 25 | AC | 100% | 85ms | 43120KB |
| 26 | AC | 100% | 121ms | 61216KB |
| 27 | AC | 100% | 22ms | 17456KB |
| 28 | AC | 100% | 23ms | 17136KB |
| 29 | AC | 100% | 77ms | 39056KB |
| 30 | AC | 100% | 47ms | 26480KB |
| 31 | AC | 100% | 146ms | 62960KB |
| 32 | AC | 100% | 97ms | 50736KB |
| 33 | AC | 100% | 14ms | 11760KB |
| 34 | AC | 100% | 120ms | 59856KB |
| 35 | AC | 100% | 14ms | 12320KB |
| 36 | AC | 100% | 60ms | 42080KB |
| 37 | AC | 100% | 41ms | 25984KB |
| 38 | AC | 100% | 11ms | 10464KB |
| 39 | AC | 100% | 117ms | 60272KB |
| 40 | AC | 100% | 11ms | 14848KB |
| 41 | AC | 100% | 129ms | 63184KB |
| 42 | AC | 100% | 30ms | 18288KB |
| 43 | AC | 100% | 145ms | 65056KB |
| 44 | AC | 100% | 80ms | 36144KB |
| 45 | AC | 100% | 82ms | 39664KB |
| 46 | AC | 100% | 100ms | 52848KB |
| 47 | AC | 100% | 131ms | 66352KB |
| 48 | AC | 100% | 160ms | 64864KB |
| 49 | AC | 100% | 71ms | 49296KB |
| 50 | AC | 100% | 77ms | 48128KB |
| 51 | AC | 100% | 22ms | 16912KB |
| 52 | AC | 100% | 65ms | 33040KB |
| 53 | AC | 100% | 35ms | 20352KB |
| 54 | AC | 100% | 115ms | 55488KB |
| 55 | AC | 100% | 16ms | 15920KB |
| 56 | AC | 100% | 51ms | 34688KB |
| 57 | AC | 100% | 30ms | 24400KB |
| 58 | AC | 100% | 44ms | 24224KB |
| 59 | AC | 100% | 24ms | 16256KB |
| 60 | AC | 100% | 24ms | 19712KB |
| 61 | AC | 100% | 46ms | 26016KB |
| 62 | AC | 100% | 118ms | 57616KB |
| 63 | AC | 100% | 68ms | 40592KB |
| 64 | AC | 100% | 115ms | 56576KB |
| 65 | AC | 100% | 109ms | 47328KB |
| 66 | AC | 100% | 3ms | 8656KB |
| 67 | AC | 100% | 47ms | 31264KB |
| 68 | AC | 100% | 46ms | 32944KB |
| 69 | AC | 100% | 137ms | 69728KB |
| 70 | AC | 100% | 83ms | 42656KB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
struct Edge {
int to, cost;
Edge(int to, int cost) : to(to), cost(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});
}
vector<bool> used(N, false);
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 ( int i = 0; i < (int)G[h].size(); i++ ) {
Edge u = G[h][i];
int to = u.to, cost = u.cost;
if ( d-cost < 0 ) continue;
Q.push({d-cost, to});
}
}
cout << ans << endl;
return 0;
}