結果

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

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 RE 0% 0ms 0KB
2 RE 0% 0ms 0KB
3 RE 0% 0ms 0KB
4 RE 0% 0ms 0KB
5 RE 0% 0ms 0KB
6 RE 0% 0ms 0KB
7 RE 0% 0ms 0KB
8 TLE 0% 20002ms 0KB
9 RE 0% 0ms 0KB
10 RE 0% 0ms 0KB
11 RE 0% 0ms 0KB
12 RE 0% 0ms 0KB
13 RE 0% 0ms 0KB
14 RE 0% 0ms 0KB
15 TLE 0% 20001ms 0KB
16 RE 0% 0ms 0KB
17 TLE 0% 20002ms 0KB
18 RE 0% 0ms 0KB
19 AC 100% 39ms 19760KB
20 RE 0% 0ms 0KB
21 RE 0% 0ms 0KB
22 RE 0% 0ms 0KB
23 RE 0% 0ms 0KB
24 RE 0% 0ms 0KB
25 RE 0% 0ms 0KB
26 RE 0% 0ms 0KB
27 TLE 0% 20002ms 0KB
28 RE 0% 0ms 0KB
29 RE 0% 0ms 0KB
30 RE 0% 0ms 0KB
31 RE 0% 0ms 0KB
32 RE 0% 0ms 0KB
33 TLE 0% 20002ms 0KB
34 RE 0% 0ms 0KB
35 RE 0% 0ms 0KB
36 TLE 0% 20002ms 0KB
37 RE 0% 0ms 0KB
38 RE 0% 0ms 0KB
39 RE 0% 0ms 0KB
40 TLE 0% 20002ms 0KB
41 RE 0% 0ms 0KB
42 RE 0% 0ms 0KB
43 RE 0% 0ms 0KB
44 RE 0% 0ms 0KB
45 RE 0% 0ms 0KB
46 RE 0% 0ms 0KB
47 RE 0% 0ms 0KB
48 RE 0% 0ms 0KB
49 RE 0% 0ms 0KB
50 RE 0% 0ms 0KB
51 RE 0% 0ms 0KB
52 RE 0% 0ms 0KB
53 RE 0% 0ms 0KB
54 RE 0% 0ms 0KB
55 TLE 0% 20002ms 0KB
56 TLE 0% 20002ms 0KB
57 TLE 0% 20002ms 0KB
58 TLE 0% 20002ms 0KB
59 AC 100% 1836ms 149520KB
60 RE 0% 20001ms 0KB
61 RE 0% 0ms 0KB
62 RE 0% 0ms 0KB
63 RE 0% 20001ms 0KB
64 RE 0% 0ms 0KB
65 RE 0% 0ms 0KB
66 AC 100% 5ms 15808KB
67 RE 0% 0ms 0KB
68 RE 0% 0ms 0KB
69 RE 0% 0ms 0KB
70 RE 0% 0ms 0KB

ソースコード

#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 ) continue;
      
      Q.push(P( ncost, nnode ));
      
    }
    
  }
  
  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;
}