Submission #1300948

#TimeUsernameProblemLanguageResultExecution timeMemory
1300948MuhammadSaramParkovi (COCI22_parkovi)C++20
10 / 110
276 ms589824 KiB
#include <bits/stdc++.h>

using namespace std;

#define int long long
#define all(v) v.begin(), v.end()

const int inf = 1e18;

signed main()
{
	int n,k;
	cin>>n>>k;
	vector<int> v;
	for (int i=0;i<n;i++)
		if (i<n-k) v.push_back(0);
		else v.push_back(1);
	vector<vector<int>> dis(n,vector<int>(n,inf));
	for (int i=1;i<n;i++)
	{
		int u,v,w;
		cin>>u>>v>>w;
		u--,v--;
		dis[u][v]=dis[v][u]=w;
		dis[u][u]=dis[v][v]=0;
	}
	for (int l=0;l<n;l++)
		for (int i=0;i<n;i++)
			for(int j=0;j<n;j++)
				dis[i][j]=min(dis[i][j],dis[i][l]+dis[l][j]);
	int ans=1e18;
	vector<int> p;
	do
	{
		int mx=0;
		for (int i=0;i<n;i++)
		{
			int d=inf;
			for (int j=0;j<n;j++)
				if (v[j]) d=min(d,dis[i][j]);
			mx=max(mx,d);
		}
		if (mx<ans)
			ans=mx, p=v;
	}while (next_permutation(all(v)));
	cout<<ans<<endl;
	for (int i=0;i<n;i++)
		if (p[i])
			cout<<i+1<<' ';
	cout<<endl;
	
	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...