結果

提出番号 1868
提出者 ats5515
言語 C++
提出日時 2018-08-04 14:16:44
問題名 (73)観光計画
結果 AC
点数 100%

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 AC 100% 58ms 35600KB
2 AC 100% 72ms 42880KB
3 AC 100% 32ms 31088KB
4 AC 100% 74ms 48800KB
5 AC 100% 45ms 27536KB
6 AC 100% 62ms 42272KB
7 AC 100% 99ms 60096KB
8 AC 100% 99ms 64368KB
9 AC 100% 36ms 24480KB
10 AC 100% 129ms 68256KB
11 AC 100% 54ms 33872KB
12 AC 100% 19ms 26128KB
13 AC 100% 48ms 45856KB
14 AC 100% 96ms 56992KB
15 AC 100% 81ms 53248KB
16 AC 100% 58ms 40400KB
17 AC 100% 113ms 65056KB
18 AC 100% 70ms 43296KB
19 AC 100% 15ms 25696KB
20 AC 100% 53ms 45408KB
21 AC 100% 25ms 20160KB
22 AC 100% 40ms 34928KB
23 AC 100% 47ms 37280KB
24 AC 100% 135ms 77904KB
25 AC 100% 99ms 60400KB
26 AC 100% 95ms 61232KB
27 AC 100% 24ms 26000KB
28 AC 100% 25ms 19968KB
29 AC 100% 55ms 37776KB
30 AC 100% 43ms 46336KB
31 AC 100% 122ms 67104KB
32 AC 100% 66ms 38096KB
33 AC 100% 16ms 16816KB
34 AC 100% 98ms 52384KB
35 AC 100% 15ms 16176KB
36 AC 100% 81ms 59216KB
37 AC 100% 48ms 31216KB
38 AC 100% 11ms 10880KB
39 AC 100% 115ms 77328KB
40 AC 100% 17ms 24848KB
41 AC 100% 110ms 57088KB
42 AC 100% 31ms 25120KB
43 AC 100% 124ms 64752KB
44 AC 100% 59ms 42880KB
45 AC 100% 70ms 50880KB
46 AC 100% 81ms 45360KB
47 AC 100% 110ms 60592KB
48 AC 100% 98ms 58496KB
49 AC 100% 52ms 36384KB
50 AC 100% 111ms 62096KB
51 AC 100% 25ms 18944KB
52 AC 100% 59ms 36352KB
53 AC 100% 34ms 26496KB
54 AC 100% 78ms 41664KB
55 AC 100% 22ms 25168KB
56 AC 100% 62ms 53216KB
57 AC 100% 33ms 44128KB
58 AC 100% 46ms 34544KB
59 AC 100% 28ms 27648KB
60 AC 100% 25ms 28592KB
61 AC 100% 46ms 33856KB
62 AC 100% 74ms 48688KB
63 AC 100% 70ms 61664KB
64 AC 100% 85ms 55888KB
65 AC 100% 82ms 51472KB
66 AC 100% 4ms 12752KB
67 AC 100% 59ms 45824KB
68 AC 100% 65ms 54736KB
69 AC 100% 165ms 83248KB
70 AC 100% 81ms 43808KB

ソースコード

#include <iostream>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <string>
#include <iomanip>
#include <algorithm>
#include <cmath>
#include <stdio.h>
using namespace std;
#define int long long
int MOD = 1000000007;
vector<vector<int> >g;
vector<vector<int> >c;
signed main() {
	cin.tie(0);
	ios::sync_with_stdio(false);
	int N, M, K;;
	cin >> N >> M >> K;
	g.resize(N);
	c.resize(N);
	int a, b, co;
	for (int i = 0; i < M; i++) {
		cin >> a >> b >> co;
		a--;
		b--;
		g[a].push_back(b);
		c[a].push_back(co);
		g[b].push_back(a);
		c[b].push_back(co);
	}
	vector<int> X(N, -1);
	vector<int> iq(N, 0);
	int h, d;
	priority_queue<pair<int, int> > pq;
	for (int i = 0; i < K; i++) {
		cin >> h >> d;
		h--;
		pq.emplace(d, h);
		X[h] = d;
		iq[h] = 1;
	}
	
	
	while (!pq.empty()) {
		a = pq.top().second; pq.pop();
		co = X[a];
		iq[a] = 0;
		for (int i = 0; i < g[a].size(); i++) {
			if (X[g[a][i]] < co - c[a][i]) {
				X[g[a][i]] = co - c[a][i];
				if (iq[g[a][i]] == 0) {
					pq.emplace(co - c[a][i], g[a][i]);
					iq[g[a][i]] = 1;
				}
			}
		}
	}
	int res = 0;
	for (int i = 0; i < N; i++) {
		if (X[i] >= 0)res++;
	}
	cout << res << endl;
}