| 提出番号 | 2024 |
|---|---|
| 提出者 | Gacho_0716 |
| 言語 | C++ |
| 提出日時 | 2018-08-04 14:57:41 |
| 問題名 | (73)観光計画 |
| 結果 | AC |
| 点数 | 100% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 122ms | 40592KB |
| 2 | AC | 100% | 153ms | 44832KB |
| 3 | AC | 100% | 60ms | 27920KB |
| 4 | AC | 100% | 163ms | 55600KB |
| 5 | AC | 100% | 86ms | 39328KB |
| 6 | AC | 100% | 159ms | 52000KB |
| 7 | AC | 100% | 158ms | 46944KB |
| 8 | AC | 100% | 175ms | 45088KB |
| 9 | AC | 100% | 83ms | 37024KB |
| 10 | AC | 100% | 229ms | 55984KB |
| 11 | AC | 100% | 109ms | 38272KB |
| 12 | AC | 100% | 29ms | 23296KB |
| 13 | AC | 100% | 72ms | 31744KB |
| 14 | AC | 100% | 218ms | 57040KB |
| 15 | AC | 100% | 161ms | 39648KB |
| 16 | AC | 100% | 157ms | 50656KB |
| 17 | AC | 100% | 162ms | 47344KB |
| 18 | AC | 100% | 142ms | 42304KB |
| 19 | AC | 100% | 54ms | 21856KB |
| 20 | AC | 100% | 100ms | 32144KB |
| 21 | AC | 100% | 53ms | 33248KB |
| 22 | AC | 100% | 82ms | 34240KB |
| 23 | AC | 100% | 99ms | 34608KB |
| 24 | AC | 100% | 228ms | 60192KB |
| 25 | AC | 100% | 181ms | 48496KB |
| 26 | AC | 100% | 191ms | 55584KB |
| 27 | AC | 100% | 52ms | 26464KB |
| 28 | AC | 100% | 54ms | 28128KB |
| 29 | AC | 100% | 115ms | 45072KB |
| 30 | AC | 100% | 79ms | 30416KB |
| 31 | AC | 100% | 236ms | 60048KB |
| 32 | AC | 100% | 150ms | 47424KB |
| 33 | AC | 100% | 31ms | 22048KB |
| 34 | AC | 100% | 210ms | 56416KB |
| 35 | AC | 100% | 26ms | 22688KB |
| 36 | AC | 100% | 129ms | 47184KB |
| 37 | AC | 100% | 77ms | 34000KB |
| 38 | AC | 100% | 19ms | 22192KB |
| 39 | AC | 100% | 252ms | 59792KB |
| 40 | AC | 100% | 33ms | 23040KB |
| 41 | AC | 100% | 224ms | 59216KB |
| 42 | AC | 100% | 62ms | 27920KB |
| 43 | AC | 100% | 250ms | 63712KB |
| 44 | AC | 100% | 136ms | 43344KB |
| 45 | AC | 100% | 151ms | 41600KB |
| 46 | AC | 100% | 171ms | 49648KB |
| 47 | AC | 100% | 204ms | 62176KB |
| 48 | AC | 100% | 205ms | 60992KB |
| 49 | AC | 100% | 110ms | 46048KB |
| 50 | AC | 100% | 190ms | 48976KB |
| 51 | AC | 100% | 43ms | 28048KB |
| 52 | AC | 100% | 101ms | 41232KB |
| 53 | AC | 100% | 72ms | 28048KB |
| 54 | AC | 100% | 138ms | 52752KB |
| 55 | AC | 100% | 45ms | 24448KB |
| 56 | AC | 100% | 120ms | 38080KB |
| 57 | AC | 100% | 72ms | 27952KB |
| 58 | AC | 100% | 77ms | 32400KB |
| 59 | AC | 100% | 53ms | 22832KB |
| 60 | AC | 100% | 61ms | 28048KB |
| 61 | AC | 100% | 94ms | 33040KB |
| 62 | AC | 100% | 168ms | 54912KB |
| 63 | AC | 100% | 135ms | 43648KB |
| 64 | AC | 100% | 215ms | 51264KB |
| 65 | AC | 100% | 163ms | 51216KB |
| 66 | AC | 100% | 5ms | 17920KB |
| 67 | AC | 100% | 97ms | 31616KB |
| 68 | AC | 100% | 91ms | 36240KB |
| 69 | AC | 100% | 300ms | 64768KB |
| 70 | AC | 100% | 145ms | 46224KB |
#include <bits/stdc++.h>
#define int long long
using namespace std;
typedef pair<int,int> P;
int N, M, K, maxcost[100005];
vector<P> G[100005];
priority_queue<P> Q;
void solve(){
while(!Q.empty()){
P t = Q.top(); Q.pop();
int node = t.second;
int cost = t.first;
if( maxcost[node] > cost ) continue;
for(int i=0;i<(int)G[node].size();i++){
int nnode = G[node][i].first;
int ncost = cost - G[node][i].second;
if( ncost < 0 ) continue;
if( maxcost[nnode] < ncost ){
maxcost[nnode] = ncost;
Q.push(P( ncost, nnode ));
}
}
}
int ans = 0;
for(int i=0;i<N;i++) ans += maxcost[i] != -1;
cout<<ans<<endl;
}
signed main(){
cin>>N>>M>>K;
for(int i=0;i<M;i++){
int a, b, c;
cin>>a>>b>>c;
G[a-1].push_back(P( b-1, c ));
G[b-1].push_back(P( a-1, c ));
}
memset( maxcost, -1, sizeof( maxcost ) );
for(int i=0;i<K;i++){
int h, d;
cin>>h>>d;
maxcost[h-1] = max( maxcost[h-1], d );
Q.push(P( d, h - 1 ));
}
solve();
return 0;
}