| 提出番号 | 1862 |
|---|---|
| 提出者 | akemi_homura |
| 言語 | C++ |
| 提出日時 | 2018-08-04 14:15:46 |
| 問題名 | (73)観光計画 |
| 結果 | WA |
| 点数 | 0% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | WA | 0% | 47ms | 30080KB |
| 2 | WA | 0% | 55ms | 34688KB |
| 3 | WA | 0% | 24ms | 21648KB |
| 4 | WA | 0% | 60ms | 44880KB |
| 5 | AC | 100% | 38ms | 26576KB |
| 6 | AC | 100% | 64ms | 39760KB |
| 7 | WA | 0% | 60ms | 43136KB |
| 8 | WA | 0% | 91ms | 43936KB |
| 9 | AC | 100% | 34ms | 24768KB |
| 10 | WA | 0% | 90ms | 47584KB |
| 11 | WA | 0% | 35ms | 27984KB |
| 12 | WA | 0% | 14ms | 17424KB |
| 13 | WA | 0% | 34ms | 29936KB |
| 14 | WA | 0% | 86ms | 48512KB |
| 15 | WA | 0% | 60ms | 36176KB |
| 16 | WA | 0% | 59ms | 39472KB |
| 17 | WA | 0% | 85ms | 41696KB |
| 18 | WA | 0% | 57ms | 32672KB |
| 19 | WA | 0% | 13ms | 15296KB |
| 20 | WA | 0% | 39ms | 30016KB |
| 21 | AC | 100% | 18ms | 20096KB |
| 22 | WA | 0% | 36ms | 26480KB |
| 23 | WA | 0% | 51ms | 28048KB |
| 24 | WA | 0% | 100ms | 58640KB |
| 25 | WA | 0% | 74ms | 39920KB |
| 26 | WA | 0% | 85ms | 48368KB |
| 27 | WA | 0% | 18ms | 18224KB |
| 28 | WA | 0% | 20ms | 17280KB |
| 29 | WA | 0% | 54ms | 32864KB |
| 30 | WA | 0% | 35ms | 28320KB |
| 31 | WA | 0% | 100ms | 51328KB |
| 32 | WA | 0% | 56ms | 36512KB |
| 33 | WA | 0% | 11ms | 11664KB |
| 34 | WA | 0% | 76ms | 45568KB |
| 35 | WA | 0% | 10ms | 11968KB |
| 36 | AC | 100% | 61ms | 44880KB |
| 37 | WA | 0% | 30ms | 23840KB |
| 38 | WA | 0% | 11ms | 9760KB |
| 39 | WA | 0% | 93ms | 58240KB |
| 40 | WA | 0% | 11ms | 16688KB |
| 41 | WA | 0% | 93ms | 49920KB |
| 42 | WA | 0% | 24ms | 17600KB |
| 43 | WA | 0% | 102ms | 52448KB |
| 44 | WA | 0% | 55ms | 34720KB |
| 45 | WA | 0% | 61ms | 35952KB |
| 46 | WA | 0% | 64ms | 38384KB |
| 47 | WA | 0% | 77ms | 53248KB |
| 48 | WA | 0% | 129ms | 51872KB |
| 49 | WA | 0% | 50ms | 34464KB |
| 50 | WA | 0% | 71ms | 44960KB |
| 51 | WA | 0% | 16ms | 16368KB |
| 52 | WA | 0% | 41ms | 31184KB |
| 53 | WA | 0% | 27ms | 18368KB |
| 54 | AC | 100% | 62ms | 40512KB |
| 55 | WA | 0% | 17ms | 16912KB |
| 56 | WA | 0% | 50ms | 37952KB |
| 57 | WA | 0% | 26ms | 26224KB |
| 58 | WA | 0% | 34ms | 22944KB |
| 59 | WA | 0% | 25ms | 16336KB |
| 60 | WA | 0% | 26ms | 20944KB |
| 61 | WA | 0% | 33ms | 24368KB |
| 62 | WA | 0% | 66ms | 43760KB |
| 63 | WA | 0% | 59ms | 42736KB |
| 64 | WA | 0% | 74ms | 43376KB |
| 65 | WA | 0% | 87ms | 42384KB |
| 66 | AC | 100% | 3ms | 9424KB |
| 67 | WA | 0% | 41ms | 28592KB |
| 68 | WA | 0% | 42ms | 36528KB |
| 69 | WA | 0% | 94ms | 58944KB |
| 70 | WA | 0% | 51ms | 36416KB |
// 基本テンプレート
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <string>
#include <cstring>
#include <deque>
#include <list>
#include <queue>
#include <stack>
#include <vector>
#include <utility>
#include <algorithm>
#include <map>
#include <set>
#include <complex>
#include <cmath>
#include <limits>
#include <cfloat>
#include <climits>
#include <ctime>
#include <cassert>
#include <numeric>
#include <fstream>
#include <functional>
using namespace std;
#define rep(i,a,n) for(int (i)=(a); (i)<(n); (i)++)
#define repq(i,a,n) for(int (i)=(a); (i)<=(n); (i)++)
#define repr(i,a,n) for(int (i)=(a); (i)>=(n); (i)--)
#define debug(...) fprintf(stderr, __VA_ARGS__)
#define int long long int
template<typename T> void chmax(T &a, T b) {a = max(a, b);}
template<typename T> void chmin(T &a, T b) {a = min(a, b);}
template<typename T> void chadd(T &a, T b) {a = a + b;}
typedef pair<int, int> pii;
typedef long long ll;
int dx[] = {0, 0, 1, -1};
int dy[] = {1, -1, 0, 0};
const ll INF = 1001001001001001LL;
const ll MOD = 1000000007LL;
int N, M, K;
int visited[100010], dist[100010];
using Graph = vector< vector<pii> >;
struct Elem {
int pos, cost;
bool operator<(const Elem &e) const {
return cost > e.cost;
}
};
signed main() {
scanf("%lld%lld%lld", &N, &M, &K);
Graph G(N);
for(int i=0; i<M; i++) {
int a, b, c; scanf("%lld%lld%lld", &a, &b, &c);
a--; b--;
G[a].push_back(make_pair(b, c));
G[b].push_back(make_pair(a, c));
}
while(K--) {
int source, max_d;
scanf("%lld%lld", &source, &max_d);
source--;
priority_queue<Elem> que;
que.push(Elem{source, 0});
visited[source] = true;
while(que.size()) {
Elem cur = que.top(); que.pop();
int u = cur.pos, cost = cur.cost;
if(dist[u] < cost) continue;
for(auto e : G[u]) {
int v = e.first, weight = e.second;
int n_dist = cost + weight;
if(n_dist > max_d) continue;
if(dist[v] > n_dist) continue;
if(visited[v]) continue;
visited[v] = true;
dist[v] = n_dist;
que.push(Elem{v, n_dist});
}
}
}
int ans = 0;
for(int i=0; i<N; i++) if(visited[i]) ans++;
printf("%lld\n", ans);
return 0;
}