Pagini recente » Rating Gabriela Vieriu (vieriu_gabriela) | Cod sursa (job #656619) | Cod sursa (job #2318659) | Istoria paginii utilizator/florin.ilie | Cod sursa (job #319302)
Cod sursa(job #319302)
#include<stdio.h>
struct relatii
{
long long x,y,d;
};
long long n,m;
long long v[10002];
relatii sol[100002];
long long cmmdc(long long a, long long b)
{
long long r;
while(b)
{
r=a%b;
a=b;
b=r;
}
return a;
}
long long cmmmc(long long a, long long b)
{
return a*b/cmmdc(a,b);
}
int corect()
{
int i;
for(i=1;i<=m;i++)
{
if(cmmdc(v[sol[i].x],v[sol[i].y])!=sol[i].d)
return 0;
}
return 1;
}
int main()
{
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
scanf("%lld%lld",&n,&m);
long long i;
for(i=1;i<=n;i++)
v[i]=1;
for(i=1;i<=m;i++)
{
scanf("%lld%lld%lld",&sol[i].x,&sol[i].y,&sol[i].d);
v[sol[i].x]=cmmmc(v[sol[i].x],sol[i].d);
v[sol[i].y]=cmmmc(v[sol[i].y],sol[i].d);
}
if(corect())
{
for(i=1;i<=n;i++)
printf("%lld ",v[i]);
printf("\n");
}
else
printf("-1\n");
return 0;
}