| 记录编号 | 
        584578 | 
        评测结果 | 
        AAAAAAAAAAAAAAAAAAAA | 
    
    
        | 题目名称 | 
        2903.最小差异值 | 
        最终得分 | 
        100 | 
            
    
    
        | 用户昵称 | 
         小金 | 
        是否通过 | 
        通过 | 
    
    
        | 代码语言 | 
        C++ | 
        运行时间 | 
        1.623 s  | 
    
    
        | 提交时间 | 
        2023-11-13 17:33:44 | 
        内存使用 | 
        2.91 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		#include<bits/stdc++.h>
using namespace std;
struct bian{
	int x,y;
	long long c;
}e[5010];
int n,m,f[5010];
long long ans=0x3f3f3f3f3f3f3f3f;
bool cmp(bian a,bian b)
{
	if(a.c==b.c)
	{
		return a.x<b.x;
	}
	else
	{
		return a.c<b.c;
	}
}
void chu()
{
	for(int i=1;i<=n;i++)
	{
		f[i]=i;
	}
}
int find(int x)
{
	if(f[x]==x)
	{
		return x;
	}
	else
	{
		return f[x]=find(f[x]);
	}
}
void kruskal(int q)
{
	chu();
	int t=0;
	for(int i=q;i<=m;i++)
	{
		int fx=find(e[i].x);
		int fy=find(e[i].y);
		if(fx!=fy)
		{
			f[fy]=fx;
			t++;
		}
		if(t==n-1)
		{
			if(e[i].c-e[q].c<ans)
			{
				ans=e[i].c-e[q].c;
			}
			break;
		}
	}
}
int main()
{
	freopen("dvalue.in","r",stdin);
    freopen("dvalue.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>e[i].x>>e[i].y>>e[i].c;
	}
	sort(e+1,e+m+1,cmp);
	for(int i=1;i<=m-n+2;i++)
	{
		kruskal(i);
	}
	cout<<ans;
	return 0;
}