Submission #1364954

#TimeUsernameProblemLanguageResultExecution timeMemory
1364954enzyPetrol stations (CEOI24_stations)C++20
18 / 100
3593 ms15716 KiB
#include<bits/stdc++.h>
#define pii pair<int,int>
#define fi first
#define se second
using namespace std;
const int maxn=7e4+10;
int sub[maxn], resp[maxn], k;
vector<pii>v[maxn];
void dfs(int u, int pai, int g){
    sub[u]=1;
    vector<int>add;
    for(pii p : v[u]){
        if(p.fi==pai) continue;
        if(p.se>g){
            add.push_back(p.fi);
            dfs(p.fi,u,k-p.se);
        }else dfs(p.fi,u,g-p.se);
        sub[u]+=sub[p.fi];
    }
    for(int x : add) resp[u]+=sub[x];
}
int main(){
    ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
    int n; cin >> n >> k;
    for(int i=1;i<n;i++){
        int a, b, c; cin >> a >> b >> c;
        v[a].push_back({b,c});
        v[b].push_back({a,c});
    }
    for(int i=0;i<n;i++) dfs(i,i,k);
    for(int i=0;i<n;i++) cout << resp[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...