记录编号 318946 评测结果 AAAAAAAAAA
题目名称 口袋的天空 最终得分 100
用户昵称 GravatarNewBee 是否通过 通过
代码语言 C++ 运行时间 0.019 s
提交时间 2016-10-10 07:37:33 内存使用 1.83 MiB
显示代码纯文本
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<queue>
#define Cu fclose(stdin);fclose(stdout);return 0;
#define Begin freopen("cotton.in","r",stdin);freopen("cotton.out","w",stdout);chul();Cu;
using namespace std;
const int maxn=100100;
queue<int> q;
struct op{
	int s,t,l;
	bool operator<(const op& a)const{
		return l<a.l;
	}
}r[maxn];
int fath[maxn];
void findfath(int x){
	if(fath[x]==x)return;
	findfath(fath[x]);
	fath[x]=fath[fath[x]];
}
void chul(){
	int ans=0,cnt=0;
	int n,m,k;
	scanf("%d%d%d",&n,&m,&k);
	k=n-k;
	for(int i=1;i<=n;i++)fath[i]=i;
	for(int i=1;i<=m;i++)scanf("%d%d%d",&r[i].s,&r[i].t,&r[i].l);
	sort(r+1,r+1+m);
	for(int i=1;i<=m&&cnt<k;i++){
		findfath(r[i].s);
		findfath(r[i].t);
		if(fath[r[i].s]==fath[r[i].t])continue;
		fath[fath[r[i].s]]=fath[r[i].t];
		ans+=r[i].l;
		cnt++;
	}
	if(cnt==k)printf("%d\n",ans);
	else printf("No Answer\n");
}
int main(){
	Begin;
	chul();while(1);
}