| 提出番号 | 2004 |
|---|---|
| 提出者 | mamekin |
| 言語 | C++ |
| 提出日時 | 2018-08-04 14:53:16 |
| 問題名 | (73)観光計画 |
| 結果 | AC |
| 点数 | 100% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 116ms | 20224KB |
| 2 | AC | 100% | 133ms | 24608KB |
| 3 | AC | 100% | 57ms | 16976KB |
| 4 | AC | 100% | 158ms | 28352KB |
| 5 | AC | 100% | 83ms | 17152KB |
| 6 | AC | 100% | 157ms | 25296KB |
| 7 | AC | 100% | 165ms | 31536KB |
| 8 | AC | 100% | 178ms | 33280KB |
| 9 | AC | 100% | 77ms | 15280KB |
| 10 | AC | 100% | 199ms | 35232KB |
| 11 | AC | 100% | 98ms | 19520KB |
| 12 | AC | 100% | 34ms | 14032KB |
| 13 | AC | 100% | 78ms | 24000KB |
| 14 | AC | 100% | 212ms | 31856KB |
| 15 | AC | 100% | 161ms | 27968KB |
| 16 | AC | 100% | 128ms | 23792KB |
| 17 | AC | 100% | 183ms | 33168KB |
| 18 | AC | 100% | 118ms | 23792KB |
| 19 | AC | 100% | 31ms | 14512KB |
| 20 | AC | 100% | 81ms | 23808KB |
| 21 | AC | 100% | 55ms | 13232KB |
| 22 | AC | 100% | 83ms | 20144KB |
| 23 | AC | 100% | 90ms | 20624KB |
| 24 | AC | 100% | 243ms | 40352KB |
| 25 | AC | 100% | 177ms | 31200KB |
| 26 | AC | 100% | 178ms | 32880KB |
| 27 | AC | 100% | 48ms | 15040KB |
| 28 | AC | 100% | 49ms | 12448KB |
| 29 | AC | 100% | 127ms | 22704KB |
| 30 | AC | 100% | 95ms | 24368KB |
| 31 | AC | 100% | 228ms | 36880KB |
| 32 | AC | 100% | 133ms | 22672KB |
| 33 | AC | 100% | 28ms | 10640KB |
| 34 | AC | 100% | 198ms | 30032KB |
| 35 | AC | 100% | 24ms | 10128KB |
| 36 | AC | 100% | 128ms | 30704KB |
| 37 | AC | 100% | 87ms | 17664KB |
| 38 | AC | 100% | 20ms | 7952KB |
| 39 | AC | 100% | 194ms | 40128KB |
| 40 | AC | 100% | 30ms | 13808KB |
| 41 | AC | 100% | 207ms | 32160KB |
| 42 | AC | 100% | 57ms | 14464KB |
| 43 | AC | 100% | 238ms | 36368KB |
| 44 | AC | 100% | 112ms | 23616KB |
| 45 | AC | 100% | 150ms | 27072KB |
| 46 | AC | 100% | 164ms | 26256KB |
| 47 | AC | 100% | 208ms | 34096KB |
| 48 | AC | 100% | 219ms | 32976KB |
| 49 | AC | 100% | 112ms | 21696KB |
| 50 | AC | 100% | 184ms | 32576KB |
| 51 | AC | 100% | 50ms | 11808KB |
| 52 | AC | 100% | 97ms | 21200KB |
| 53 | AC | 100% | 65ms | 15088KB |
| 54 | AC | 100% | 154ms | 24240KB |
| 55 | AC | 100% | 34ms | 14016KB |
| 56 | AC | 100% | 125ms | 27536KB |
| 57 | AC | 100% | 68ms | 23216KB |
| 58 | AC | 100% | 85ms | 19216KB |
| 59 | AC | 100% | 44ms | 15472KB |
| 60 | AC | 100% | 47ms | 15920KB |
| 61 | AC | 100% | 97ms | 18720KB |
| 62 | AC | 100% | 190ms | 28256KB |
| 63 | AC | 100% | 146ms | 32688KB |
| 64 | AC | 100% | 190ms | 30176KB |
| 65 | AC | 100% | 184ms | 28992KB |
| 66 | AC | 100% | 4ms | 8640KB |
| 67 | AC | 100% | 104ms | 24224KB |
| 68 | AC | 100% | 102ms | 28592KB |
| 69 | AC | 100% | 263ms | 42512KB |
| 70 | AC | 100% | 137ms | 24368KB |
#define _USE_MATH_DEFINES
#include <cstdio>
#include <iostream>
#include <sstream>
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <cmath>
#include <complex>
#include <string>
#include <vector>
#include <array>
#include <list>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <bitset>
#include <numeric>
#include <limits>
#include <climits>
#include <cfloat>
#include <functional>
#include <iterator>
#include <memory>
using namespace std;
class Edge
{
public:
int to, cost;
Edge(int to, int cost){
this->to = to;
this->cost = cost;
}
};
int main()
{
int n, m, k;
cin >> n >> m >> k;
vector<vector<Edge> > edges(n);
for(int i=0; i<m; ++i){
int a, b, c;
cin >> a >> b >> c;
-- a;
-- b;
edges[a].push_back(Edge(b, c));
edges[b].push_back(Edge(a, c));
}
priority_queue<pair<int, int>> pq;
vector<int> v(n, -1);
for(int i=0; i<k; ++i){
int h, d;
cin >> h >> d;
-- h;
pq.push(make_pair(d, h));
v[h] = d;
}
while(!pq.empty()){
int a, x;
tie(x, a) = pq.top();
pq.pop();
if(x < v[a])
continue;
for(const Edge& e : edges[a]){
int y = x - e.cost;
if(y > v[e.to]){
v[e.to] = y;
pq.push(make_pair(y, e.to));
}
}
}
int ans = 0;
for(int i=0; i<n; ++i){
if(v[i] >= 0)
++ ans;
}
cout << ans << endl;
return 0;
}