結果

提出番号 1781
提出者 kzyKT
言語 C++
提出日時 2018-08-04 13:52:08
問題名 (73)観光計画
結果 AC
点数 100%

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 AC 100% 59ms 32368KB
2 AC 100% 67ms 36880KB
3 AC 100% 26ms 22320KB
4 AC 100% 90ms 44720KB
5 AC 100% 55ms 27200KB
6 AC 100% 77ms 41440KB
7 AC 100% 79ms 46944KB
8 AC 100% 85ms 47824KB
9 AC 100% 82ms 24784KB
10 AC 100% 103ms 57184KB
11 AC 100% 52ms 28464KB
12 AC 100% 14ms 17472KB
13 AC 100% 36ms 30976KB
14 AC 100% 113ms 50320KB
15 AC 100% 72ms 41280KB
16 AC 100% 81ms 39744KB
17 AC 100% 85ms 51808KB
18 AC 100% 65ms 37376KB
19 AC 100% 14ms 19408KB
20 AC 100% 41ms 31792KB
21 AC 100% 51ms 20640KB
22 AC 100% 38ms 26880KB
23 AC 100% 39ms 28160KB
24 AC 100% 120ms 61904KB
25 AC 100% 90ms 49824KB
26 AC 100% 111ms 52704KB
27 AC 100% 22ms 19280KB
28 AC 100% 18ms 17120KB
29 AC 100% 69ms 33984KB
30 AC 100% 46ms 32528KB
31 AC 100% 126ms 56656KB
32 AC 100% 77ms 37040KB
33 AC 100% 14ms 13184KB
34 AC 100% 107ms 48064KB
35 AC 100% 13ms 12976KB
36 AC 100% 59ms 44464KB
37 AC 100% 43ms 25424KB
38 AC 100% 11ms 9840KB
39 AC 100% 107ms 59024KB
40 AC 100% 13ms 16416KB
41 AC 100% 123ms 52160KB
42 AC 100% 26ms 20272KB
43 AC 100% 107ms 57872KB
44 AC 100% 68ms 35280KB
45 AC 100% 71ms 40624KB
46 AC 100% 81ms 40832KB
47 AC 100% 128ms 52752KB
48 AC 100% 115ms 53920KB
49 AC 100% 84ms 34240KB
50 AC 100% 81ms 46688KB
51 AC 100% 23ms 16256KB
52 AC 100% 59ms 31008KB
53 AC 100% 32ms 21584KB
54 AC 100% 98ms 40912KB
55 AC 100% 16ms 18032KB
56 AC 100% 46ms 37056KB
57 AC 100% 30ms 29696KB
58 AC 100% 35ms 27728KB
59 AC 100% 23ms 21472KB
60 AC 100% 24ms 21072KB
61 AC 100% 42ms 26944KB
62 AC 100% 94ms 45824KB
63 AC 100% 71ms 44016KB
64 AC 100% 110ms 48912KB
65 AC 100% 91ms 44768KB
66 AC 100% 3ms 9536KB
67 AC 100% 52ms 33760KB
68 AC 100% 39ms 37200KB
69 AC 100% 140ms 69056KB
70 AC 100% 70ms 37040KB

ソースコード

#include <bits/stdc++.h>
using namespace std;
#define F first
#define S second
#define R cin>>
#define Z class
#define ll long long
#define ln cout<<'\n'
#define in(a) insert(a)
#define pb(a) push_back(a)
#define pd(a) printf("%.10f\n",a)
#define mem(a) memset(a,0,sizeof(a))
#define all(c) (c).begin(),(c).end()
#define iter(c) __typeof((c).begin())
#define rrep(i,n) for(ll i=(ll)(n)-1;i>=0;i--)
#define REP(i,m,n) for(ll i=(ll)(m);i<(ll)(n);i++)
#define rep(i,n) REP(i,0,n)
#define tr(it,c) for(iter(c) it=(c).begin();it!=(c).end();it++)
template<Z A>void pr(A a){cout<<a;ln;}
template<Z A,Z B>void pr(A a,B b){cout<<a<<' ';pr(b);}
template<Z A,Z B,Z C>void pr(A a,B b,C c){cout<<a<<' ';pr(b,c);}
template<Z A,Z B,Z C,Z D>void pr(A a,B b,C c,D d){cout<<a<<' ';pr(b,c,d);}
template<Z A>void PR(A a,ll n){rep(i,n){if(i)cout<<' ';cout<<a[i];}ln;}
ll check(ll n,ll m,ll x,ll y){return x>=0&&x<n&&y>=0&&y<m;}
const ll MAX=1e9+7,MAXL=1LL<<61,dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
typedef pair<ll,ll> P;

void Main() {
  ll n,m,k;
  cin >> n >> m >> k;
  vector<P> v[n];
  rep(i,m) {
    ll x,y,z;
    cin >> x >> y >> z;
    x--,y--;
    v[x].pb(P(y,z));
    v[y].pb(P(x,z));
  }
  P a[k];
  rep(i,k) {
    cin >> a[i].F >> a[i].S;
    a[i].F--;
  }
  priority_queue<P,vector<P>,greater<P> > que;
  ll d[n];
  fill(d,d+n,-MAX);
  rep(i,k) {
    que.push(P(a[i].S,a[i].F));
    d[a[i].F]=a[i].S;
  }
  while(!que.empty()) {
    P p=que.top();que.pop();
    ll x=p.S,c=p.F;
    if(d[x]>c) continue;
    rep(i,v[x].size()) {
      P q=v[x][i];
      ll y=q.F,cc=q.S;
      if(c-cc<0) continue;
      if(d[y]<c-cc) {
        d[y]=c-cc;
        que.push(P(c-cc,y));
      }
    }
  }
  int ans=0;
  rep(i,n) {
    if(d[i]>=0) ans++;
  }
  pr(ans);
}

int main(){ios::sync_with_stdio(0);cin.tie(0);Main();return 0;}