Submission #1172742

#TimeUsernameProblemLanguageResultExecution timeMemory
1172742ezzzayPaths (RMI21_paths)C++20
56 / 100
1096 ms9160 KiB
#include<bits/stdc++.h> using namespace std; #define ff first #define ss second #define pb push_back #define int long long const int N=1e5+3; int n,k; vector<pair<int,int> >v[N]; int dst[N]; vector<int>vc; void dfs(int a, int p){ pair<int,int> f={0,0}; for(auto t:v[a]){ int b=t.ff,c=t.ss; if(b==p)continue; dfs(b,a); f=max(f,{dst[b]+c,b}); dst[a]=max(dst[b]+c,dst[a]); } for(auto t:v[a]){ int b=t.ff,c=t.ss; if(b==p)continue; if(f.ss!=b){ vc.pb(dst[b]+c); } } } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>k; for(int i=1;i<n;i++){ int a,b,c; cin>>a>>b>>c; v[a].pb({b,c}); v[b].pb({a,c}); } for(int i=1;i<=n;i++){ for(int j=0;j<=n;j++)dst[j]=0; vc.clear(); dfs(i,0); vc.push_back(dst[i]); int s=0; sort(vc.begin(),vc.end(),greater<int>()); for(int j=0;j<min(k, (int)vc.size());j++)s+=vc[j]; cout<<s<<endl; } }
#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...