记录编号 |
296535 |
评测结果 |
AAAAAAAAAAA |
题目名称 |
[POJ2395] Out of Hay |
最终得分 |
100 |
用户昵称 |
521 |
是否通过 |
通过 |
代码语言 |
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(){;}