Submission #1364955

#TimeUsernameProblemLanguageResultExecution timeMemory
1364955SofiatpcPetrol stations (CEOI24_stations)C++20
18 / 100
11 ms568 KiB
#include <bits/stdc++.h>

using namespace std;

#define fi first
#define sc second
const int MAXN = 1005;
vector< pair<int,int > > adj[MAXN];
int ans[MAXN], sub[MAXN], k;

void dfs(int s, int p, int f){
    sub[s] = 1;
    for(auto [viz,w] : adj[s]){
        if(viz == p)continue;
        if(f-w < 0){dfs(viz,s,k-w); ans[s] += sub[viz];}
        else dfs(viz,s,f-w);
        sub[s] += sub[viz];
    }
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int n; cin>>n>>k;
    for(int i = 1; i < n; i++){
        int a,b,c; cin>>a>>b>>c;
        adj[a].emplace_back(b,c);
        adj[b].emplace_back(a,c);
    }

    for(int i = 0; i < n; i++)dfs(i,-1,k);

    for(int i = 0; i < n; i++)cout<<ans[i]<<"\n";
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...