Pagini recente » Cod sursa (job #615199) | Cod sursa (job #2408450) | Clasament 12344321 | Cod sursa (job #548370) | Cod sursa (job #236903)
Cod sursa(job #236903)
#include<stdio.h>
int n,m;
long long sol[10001];
struct dat{
int x;
int y;
long long d;
};
dat sir[100001];
long long cmmdc(long long a,long long b)
{
long long r;
while(b!=0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
long long cmmmc(long long a,long long b)
{
return (a*b)/cmmdc(a,b);
}
void citire()
{
scanf("%d %d",&m,&n);
for(int i=1;i<=m;i++)
sol[i]=1;
for(int i=1;i<=n;i++)
{
scanf("%d %d %lld",&sir[i].x,&sir[i].y,&sir[i].d);
sol[sir[i].x]=cmmmc(sol[sir[i].x],sir[i].d);
sol[sir[i].y]=cmmmc(sol[sir[i].y],sir[i].d);
}
}
int verif()
{
for(int i=1;i<=n;i++)
{
if(cmmdc(sol[sir[i].x],sol[sir[i].y])!=sir[i].d)
return 0;
}
return 1;
}
int main()
{
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
citire();
if(verif())
for(int i=1;i<=m;i++)
printf("%lld ",sol[i]);
else printf("-1");
return 0;
}