Submission #1140770

#TimeUsernameProblemLanguageResultExecution timeMemory
1140770AbdullahIshfaqPetrol stations (CEOI24_stations)C++20
18 / 100
3594 ms10652 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define MOD 1000000007
const ll N = 70005;
vector<pair<ll,ll>> g[N];
ll ans[N], k;
ll dfs(ll u, ll v, ll kk){
	ll sub = 1;
	for(auto i : g[u]){
		if(i.first != v){
			ll cur = kk - i.second;
			if(cur < 0){
				int tmp = dfs(i.first, u,  k - i.second);
                ans[u] += tmp;
                sub += tmp;
			}
			else{
				sub += dfs(i.first, u, cur);
			}
		}
	}
	return sub;
}
void solve(){
	ll n, u, v, w;
	cin >> n >> k;
	for(ll i = 0 ;i < n - 1 ; i++){
		cin >> u >> v >> w;
		g[u].push_back({v, w});
		g[v].push_back({u, w});
	}
	for(ll i = 0; i < n; i ++){
		dfs(i, -1, k);
	}
	for(ll i = 0 ;i < n ;i ++){
		cout << ans[i] << '\n';
	}
}
int main() {
	ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	ll tests = 1;
	// cin >> tests;
	for(ll i = 1; i <= tests; i++){
		solve();
	}
}
#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...