Pagini recente » Cod sursa (job #1656052) | Profil Florin90tl | Cod sursa (job #1952767) | Cod sursa (job #2355480) | Cod sursa (job #163629)
Cod sursa(job #163629)
#include<stdio.h>
long ok=1,x,y,r,n,m,i,div,d,c1,c2,p1[10000],p2[10000],a[10000],dd[10000];
int main()
{
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
scanf("%ld %ld",&n,&m);
for(i=1;i<=n;++i)
a[i]=1;
for(i=1;i<=m;++i)
{
scanf("%ld %ld %ld",&p1[i],&p2[i],&d);
c1=a[p1[i]];
c2=a[p2[i]];
dd[i]=d;
div=2;
while(d%div==0)
{
if((c1%div==0&&c2%div==1))
{
a[p2[i]]=a[p2[i]]*div;
c1=c1/div;
}
else
if(c1%div==1&&c1%div==0)
{
a[p1[i]]=a[p1[i]]*div;
c2=c2/div;
}
else
if(c1%div&&c2%div)
{
a[p1[i]]*=div;
a[p2[i]]*=div;
}
d/=div;
}
div=1;
while(div<d)
{
div+=2;
while(d%div==0)
{
if((c1%div==0&&c2%div==1))
{
a[p2[i]]=a[p2[i]]*div;
c1=c1/div;
}
else
if(c1%div==1&&c1%div==0)
{
a[p1[i]]=a[p1[i]]*div;
c2=c2/div;
}
else
if(c1%div&&c2%div)
{
a[p1[i]]*=div;
a[p2[i]]*=div;
}
d/=div;
}
}
}
ok=1;
for(i=1;i<=m;++i)
{
x=a[p1[i]];
y=a[p2[i]];
r=x%y;
while(r)
{
x=y;
y=r;
r=x%y;
}
if(y!=dd[i]) {ok=0; break;}
}
if(ok==0) printf("-1");
else
for(i=1;i<=n;++i)
printf("%ld ",a[i]);
return 0;
}