| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1346542 | MrAndria | Petrol stations (CEOI24_stations) | C++20 | 3593 ms | 14244 KiB |
#include <bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
#define int long long
int n,k,ans[1000005],pref[1000005], dist[1000005];
vector <int> v;
vector <pair <int,int> > adj[1000005];
void dfs(int x,int p,int curr){
v.pb(x);
dist[x]=curr;
for(auto u:adj[x]){
if(u.ff!=p){
dfs(u.ff,x,curr+u.ss);
}
}
}
void solve(int root){
v.clear();
dfs(root,root,0);
for(int i=1;i<v.size()-1;i++){
int l=0;
int r=i-1;
int lef=-1,righ=-1;
while(l<=r){
int mid=(l+r)/2;
if(dist[v[i+1]]-k>dist[v[mid]]){
righ=mid;
l=mid+1;
}else{
r=mid-1;
}
}
l=0;
r=i-1;
while(l<=r){
int mid=(l+r)/2;
if(dist[v[i]]-k>dist[v[mid]]){
lef=mid;
l=mid+1;
}else{
r=mid-1;
}
}
// cout<<lef<<" "<<righ<<endl;
if(righ==-1){
pref[i]=pref[i-1];
}else{
if(lef==-1){
ans[v[i]]+=(n-i-1)*(pref[righ]+righ+1);
pref[i]=pref[i-1]+(pref[righ]+righ+1);
}else{
ans[v[i]]+=(pref[righ]-pref[lef]+righ-lef)*(n-i-1);
pref[i]=pref[i-1]+(pref[righ]-pref[lef]+righ-lef);
}
}
}
}
signed main(){
cin>>n>>k;
for(int i=1;i<=n-1;i++){
int u,v,c;
cin>>u>>v>>c;
adj[u].pb(make_pair(v,c));
adj[v].pb(make_pair(u,c));
}
for(int i=0;i<=n-1;i++){
if(adj[i].size()==1){
solve(i);
}
}
for(int i=0;i<=n-1;i++){
cout<<ans[i]<<"\n";
}
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
