是不是模数为0导致的,该怎么解决?求助dalao
https://www.luogu.com.cn/record/53167226
#include<bits/stdc++.h>
using namespace std;
int head[1100000],nxt[1100000],to[1100000],edge[1100000],fa[1100000];
int tot,cnt=0;
int mid[1100000],way[1100000],anss[1100000];
double ans=999999999;
int find(int a)
{
if(fa[a]!=a) return find(fa[a]);
return a;
}
void add(int u,int v,int w)
{
tot++;
to[tot]=v;
nxt[tot]=head[u];
edge[tot]=w;
head[u]=tot;
}
int gcd(int x,int y)
{
if(x%y==0) return y;
else return gcd(y,x%y);
}
void search()
{
for(int i=1;i<=cnt;i++)
{
mid[i]=way[i];
}
sort(mid+1,mid+1+cnt);
if(ans>=mid[cnt]/mid[1])
{
ans=mid[cnt]/mid[1];
anss[1]=mid[cnt];
anss[2]=mid[1];
}
}
void dfs(int k,int fa,int tar)
{
for(int i=head[k];i;i=nxt[i])
{
int go=to[i];
if(go==fa) continue;
way[++cnt]=edge[i];
if(go==tar)
{
search();
}
dfs(go,k,tar);
cnt--;
}
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++) fa[i]=i;
for(int i=1;i<=m;i++)
{
int lai,qu,v;
cin>>lai>>qu>>v;
int fa1=find(lai),fa2=find(qu);
if(fa1!=fa2) fa[fa1]=fa2;
add(lai,qu,v);
add(qu,lai,v);
}
int st,ed;
cin>>st>>ed;
int fat=find(st),fad=find(ed);
if(fat!=fad)
{
cout<<"IMPOSSIBLE";
return 0;
}
dfs(st,st,ed);
int yue=gcd(anss[1],anss[2]);
if(anss[1]%anss[2]==0) cout<<anss[1]/anss[2];
else cout<<anss[1]/yue<<"/"<<anss[2]/yue;
}