結果

提出番号 1988
提出者 Gacho_0716
言語 C++
提出日時 2018-08-04 14:50:55
問題名 (73)観光計画
結果 WA
点数 0%

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 WA 0% 105ms 38320KB
2 WA 0% 139ms 43792KB
3 WA 0% 66ms 26192KB
4 WA 0% 184ms 51216KB
5 AC 100% 105ms 35712KB
6 AC 100% 163ms 47408KB
7 WA 0% 158ms 46080KB
8 WA 0% 181ms 44992KB
9 AC 100% 98ms 33952KB
10 WA 0% 256ms 52960KB
11 WA 0% 102ms 36064KB
12 WA 0% 34ms 21616KB
13 WA 0% 72ms 30880KB
14 WA 0% 223ms 55840KB
15 WA 0% 154ms 43264KB
16 AC 100% 135ms 48160KB
17 WA 0% 190ms 45280KB
18 WA 0% 125ms 40192KB
19 AC 100% 35ms 19616KB
20 WA 0% 95ms 33248KB
21 AC 100% 51ms 30080KB
22 WA 0% 87ms 32288KB
23 WA 0% 95ms 33264KB
24 WA 0% 247ms 60080KB
25 WA 0% 174ms 45600KB
26 WA 0% 229ms 54128KB
27 WA 0% 50ms 24512KB
28 WA 0% 51ms 25328KB
29 WA 0% 114ms 40784KB
30 WA 0% 98ms 30176KB
31 WA 0% 240ms 59312KB
32 AC 100% 121ms 44912KB
33 WA 0% 30ms 19632KB
34 WA 0% 197ms 54448KB
35 WA 0% 29ms 20304KB
36 AC 100% 150ms 45552KB
37 WA 0% 80ms 32240KB
38 WA 0% 23ms 18944KB
39 WA 0% 234ms 59792KB
40 WA 0% 31ms 21328KB
41 WA 0% 190ms 58112KB
42 WA 0% 52ms 24928KB
43 WA 0% 226ms 63232KB
44 WA 0% 131ms 41376KB
45 WA 0% 174ms 41088KB
46 WA 0% 158ms 47776KB
47 WA 0% 216ms 58816KB
48 WA 0% 242ms 59936KB
49 WA 0% 132ms 42416KB
50 WA 0% 151ms 49200KB
51 WA 0% 50ms 25296KB
52 WA 0% 120ms 39008KB
53 WA 0% 70ms 25936KB
54 AC 100% 161ms 50032KB
55 WA 0% 41ms 22704KB
56 WA 0% 112ms 37440KB
57 WA 0% 59ms 26832KB
58 WA 0% 93ms 29520KB
59 AC 100% 50ms 21488KB
60 WA 0% 49ms 26208KB
61 WA 0% 88ms 30704KB
62 AC 100% 190ms 53200KB
63 WA 0% 147ms 44544KB
64 WA 0% 180ms 54000KB
65 WA 0% 191ms 50032KB
66 AC 100% 6ms 15792KB
67 WA 0% 119ms 31552KB
68 WA 0% 105ms 35840KB
69 WA 0% 251ms 63376KB
70 WA 0% 141ms 44160KB

ソースコード

#include <bits/stdc++.h>
#define int long long
using namespace std;

typedef pair<int,int> P;

int N, M, K, used[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;
    
    used[node] = 1;
    
    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 || used[nnode] == 1 ) continue;
      
      Q.push(P( ncost, nnode ));
      used[nnode] = 1;
      
    }
    
  }
  
  int ans = 0;

  for(int i=0;i<N;i++) ans += used[i];
  
  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 ));
  }
  
  for(int i=0;i<K;i++){
    int h, d;
    cin>>h>>d;
    Q.push(P( d, h - 1 ));
  }
  
  solve();
  
  return 0;
}