Advertisement
Guest User

Untitled

a guest
Dec 17th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #define pb push_back
  3. #define mp make_pair
  4. #define f first
  5. #define s second
  6. using namespace std;
  7. int a,b,c,d,e,n,m,ans,k;
  8. int x[1000006],fix[1000006],fx[1000006];
  9. int sum[1000006],sm[1000006],man[1000006];
  10. vector<pair<int,int> >v[1000006];
  11. priority_queue <pair<int,int> > q;
  12. priority_queue <pair<int,pair<int,int> > > Q;
  13. int main ()
  14. {
  15. ifstream cin("dining.in");
  16. ofstream cout("dining.out");
  17. cin>>n>>m>>k;
  18. for(int i=1;i<=m;i++)
  19. {
  20. cin>>a>>b>>c;
  21. v[a].pb(mp(b,c));
  22. v[b].pb(mp(a,c));
  23. }
  24. q.push(mp(0,n));
  25. while(!q.empty())
  26. {
  27. pair<int,int> t=q.top();q.pop();
  28. if(fix[t.s])continue;
  29. man[t.s]=-t.f;
  30. for(int j=0;j<v[t.s].size();j++)
  31. {
  32. q.push(mp(-(v[t.s][j].s-t.f),v[t.s][j].f));
  33. }
  34. fix[t.s]=1;
  35. }
  36. for(int i=1;i<=n;i++)fix[i]=0;
  37. for(int i=1;i<=k;i++)
  38. {
  39. cin>>a>>b;
  40. q.push(mp(-(man[a]-b),a));
  41. }
  42. while(!q.empty())
  43. {
  44. pair<int,int> t=q.top();q.pop();
  45. if(fix[t.s])continue;
  46. sum[t.s]=-t.f;
  47. for(int j=0;j<v[t.s].size();j++)
  48. {
  49. q.push(mp(-(v[t.s][j].s-t.f),v[t.s][j].f));
  50. }
  51. fix[t.s]=1;
  52. }
  53. for(int i=1;i<=n;i++)
  54. {
  55. if(sum[i]<=man[i])sum[i]=1;else sum[i]=0;
  56. }
  57. for(int i=1;i<n;i++)
  58. {
  59. cout<<sum[i]<<endl;
  60. }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement