记录编号 296535 评测结果 AAAAAAAAAAA
题目名称 [POJ2395] Out of Hay 最终得分 100
用户昵称 Gravatar521 是否通过 通过
代码语言 C++ 运行时间 0.006 s
提交时间 2016-08-15 17:22:24 内存使用 0.00 MiB
显示代码纯文本
#include<stdio.h>
#include<stdlib.h>
#define M 100010
inline void read(int&x)
{
	int flag=1;
	char ch;
	while(ch=getchar(),ch<'0'||ch>'9') if(ch=='-') flag=-1;
	x=(ch^'0');
	while(ch=getchar(),ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+(ch^'0');
	x*=flag;
}
//===============================================================
int map[M][3];
int n,m,p[M],ans,cnt;
int cmp(const void*x,const void*y)
{
	return *(int*)x-*(int*)y;
}
inline int Find(int x){return p[x]==x?x:p[x]=Find(p[x]);}
inline void Kruskal()
{
	int i;
	for(i=1;i<=n;i++) p[i]=i;
	qsort(map+1,m,sizeof(map[0]),cmp);
	for(i=1;i<=m;i++){
		int fx=Find(map[i][1]),fy=Find(map[i][2]);
		if(fx!=fy){
			p[fx]=fy,cnt++;
			if(ans<map[i][0]) ans=map[i][0];
		}
		if(cnt==n-1) return ;
	}
	return ;
}
int _521()
{
#define STRAT
#ifdef STRAT
	freopen("outofhay.in","r",stdin);
	freopen("outofhay.out","w",stdout);
#else
	freopen("1.in","r",stdin);
#endif
	int i;
	read(n),read(m);
	for(i=1;i<=m;i++)
	  read(map[i][1]),read(map[i][2]),read(map[i][0]);
	Kruskal();
	if(cnt==n-1) printf("%d\n",ans);
	else printf("-1\n");
	return 0;
}
int _520=_521();
int main(){;}