제출 #1232349

#제출 시각아이디문제언어결과실행 시간메모리
1232349alexander707070Petrol stations (CEOI24_stations)C++20
18 / 100
3594 ms9152 KiB
#include<bits/stdc++.h> #define MAXN 70007 using namespace std; struct edge{ int to,cost; }; int n,K,a,b,c; int ans[MAXN],sz[MAXN]; vector<edge> v[MAXN]; void calc(int x,int p){ sz[x]=1; for(auto e:v[x]){ if(e.to==p)continue; calc(e.to,x); sz[x]+=sz[e.to]; } } void dfs(int x,int p,int up,long long d){ if(d<0){ ans[p]+=sz[x]; d=K-up; } for(auto e:v[x]){ if(e.to==p)continue; dfs(e.to,x,e.cost,d-e.cost); } } int main(){ cin>>n>>K; for(int i=1;i<=n-1;i++){ cin>>a>>b>>c; a++; b++; v[a].push_back({b,c}); v[b].push_back({a,c}); } for(int i=1;i<=n;i++){ calc(i,0); dfs(i,0,0,K); } for(int i=1;i<=n;i++){ cout<<ans[i]<<"\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...