Advertisement
Ishmam_Rahman

B. COVID-19 Outbreak (Toph)

Mar 28th, 2020
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.84 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef vector<int> vi;
  4. typedef vector<long long> vll;
  5. typedef pair<int,int> pii;
  6. typedef vector< pii > vii;
  7.  
  8. #define ll          long long
  9. #define ff          first
  10. #define ss          second
  11. #define pb          push_back
  12. #define mkp         make_pair
  13. #define sz          size()
  14.  
  15. #define forf(a,b,c)    for(int i=a;i<=b;i+=c)
  16. #define forr(a,b,c)    for(int i=a;i>=b;i-=c)
  17. #define all(a)      a.begin(),a.end()
  18. #define mem(a,b)    memset(a,b,sizeof(a))
  19. #define pi          2*acos(0.0)
  20. #define End         return 0;
  21.  
  22. #define scan1(a)    scanf("%d",&a)
  23. #define scan2(a,b)  scanf("%d %d",&a,&b)
  24. #define scan3(a,b,c)  scanf("%d %d %d",&a,&b,&c)
  25. #define scanl(a)    scanf("%lld",&a)
  26. #define scanll(a,b) scanf("%lld %lld",&a,&b)
  27. #define scanlll(a,b,c) scanf("%lld %lld %lld",&a,&b,&c)
  28.  
  29. #define print1(a)    printf("%d",a)
  30. #define print2(a,b)  printf("%d %d",a,b)
  31. #define print3(a,b,c)  printf("%d %d %d",a,b,c)
  32. #define printl(a)    printf("%lld",a)
  33. #define printll(a,b) printf("%lld %lld",a,b)
  34. #define printlll(a,b,c) printf("%lld %lld %lld",a,b,c)
  35.  
  36. #define MAXN        100000007
  37. #define INF 0x3f3f3f3f
  38.  
  39. struct com{
  40.     ll node;
  41.     ll cost;
  42. };
  43. vector<vector<com> >adj(1000000+1);
  44. bool vis[1000003];
  45. ll truck[1000003];
  46.  
  47. ll dfs(ll src, ll trc){
  48.  
  49.     vis[src]=1;
  50.     ll total=truck[src];
  51.     for(int i=0;i<adj[src].sz;i++){
  52.         ll t=adj[src][i].node;
  53.         if(vis[t]==0) {
  54.             total+=dfs(t,adj[src][i].cost);
  55.         }
  56.     }
  57.     return min(total,trc);
  58. }
  59. int main()
  60. {
  61.    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  62.  
  63.    int n,z; cin>>n>>z;
  64.  
  65.  
  66.  
  67.    for(int i=0;i<n-1;i++){
  68.     int a,b,y; cin>>a>>b>>y;
  69.     adj[a].pb({b,y});
  70.     adj[b].pb({a,y});
  71.    }
  72.    for(int i=1;i<=n;i++){
  73.     cin>>truck[i];
  74.    }
  75.  
  76.    cout<<dfs(z,10000000000000)<<endl;
  77.    End;
  78.  
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement