比赛 |
NOIP水题争霸赛 |
评测结果 |
WWWWWWWWWWWWWWWWWWWW |
题目名称 |
最小差异值 |
最终得分 |
0 |
用户昵称 |
君皓寒丶 |
运行时间 |
0.037 s |
代码语言 |
C++ |
内存使用 |
0.29 MiB |
提交时间 |
2018-02-11 21:29:33 |
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int pre[5010];
struct edges{int x;
int y;
int z;
}a[5010];
int cmp(const edges & a,const edges & b)
{if(a.z<=b.z)
return 1;
return 0;
}
int find(int x)
{if(pre[x]!=x)
pre[x]=find(pre[x]);
return pre[x];
}
int main()
{
freopen("dvalue.in","r",stdin);
freopen("dvalue.out","w",stdout);
int n,m,sum=0,maxx=-1,minn=50010;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
pre[i]=i;
for(int i=1;i<=m;i++)
{int xi,yi,zi;
scanf("%d%d%d",&xi,&yi,&zi);
a[i].x=xi;
a[i].y=yi;
a[i].z=zi;
}
sort(a+1,a+m+1,cmp);
for(int i=1;i<=m;i++)
{int xi=find(a[i].x),yi=find(a[i].y);
if(xi!=yi)
pre[xi]=yi;
if(a[i].z<minn)
minn=a[i].z;
if(a[i].z>maxx)
maxx=a[i].z;
}
printf("%d",maxx-minn);
return 0;
}