Submission #1289290

#TimeUsernameProblemLanguageResultExecution timeMemory
1289290iq500Paths (RMI21_paths)C++17
19 / 100
1096 ms18736 KiB

#include <bits/stdc++.h>
#define int long long

using namespace std;

const int N=20;

int n, k, ans[N];


int bfs(int x, vector<pair<int, int>> g[]){
    int vis[n+1]={0};
    int add[n+1]={0};
    int ret=0;
    pair<int, int> paths[n+1];
    queue<int> q;
    q.push(x);
    add[x]=0;
    while(q.size()){
        int nod=q.front();
        if(add[nod]>add[ret]) ret=nod;

        q.pop();
        vis[nod]=true;
        for(int i=0; i<g[nod].size(); i++){
            int go=g[nod][i].first;
            if(!vis[go]){
                vis[go]=true;
                add[go]=add[nod]+g[nod][i].second;
                paths[go]={nod, i};
                q.push(go);
            }
        }
    }
    int gh=ret;
    while(paths[gh].first!=0){
        //cout<<gh<<" gh\n";
        g[paths[gh].first][paths[gh].second].second=0;
        gh=paths[gh].first;
    }

    /*cout<<x<<"\n";
    for(auto i:add) cout<<i<<" ";
        cout<<"...\n";*/
    //cout<<ret<<" "<<add[ret]<<"!!\n";
    return add[ret];
}


signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
    cin>>n>>k;
    vector<pair<int, int>> g[n+1];
    for(int i=0; i<n-1; i++){
        int x, y, c; cin>>x>>y>>c;
        g[x].push_back({y, c});
        g[y].push_back({x, c});
    }
    

    for(int i=1; i<=n; i++){
        vector<pair<int, int>> v[n+1];
        for(int i=1; i<=n; i++){
            for(int j=0; j<g[i].size(); j++){
                v[i].push_back(g[i][j]);
            }
        }
        int sum=0;
        for(int j=0; j<k; j++){
            sum+=bfs(i, v);
        }
        cout<<sum<<"\n";
    }


    
    return 0;
}
#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...