Pagini recente » Cod sursa (job #2105005) | Borderou de evaluare (job #2088894) | Cod sursa (job #1112818) | Cod sursa (job #1687050) | Cod sursa (job #236845)
Cod sursa(job #236845)
#include<stdio.h>
int check(int a,int b)
{ int c;
while(a)
{
c=b%a;
b=a;
a=c;
}
if(b!=0)
return b;
return 0;
}
int main ()
{
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
int n,m,i,k,q;
int x,b,c;
scanf("%d%d",&n,&m);
long long int a[n];
for(i=1;i<=n;i++)
a[i]=1;
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&x,&b,&c);
if(c>=1000000000)
{printf("-1\n");
return 0;
}q=2;
while(q!=1)
{q=check(c,a[x]);
c/=q;}
a[x]*=c;
while(q!=1)
{q=check(c,a[b]);
c/=q;}
a[b]*=c;
if(a[x]>2000000000 || a[b]>2000000000)
{printf("-1\n");
return 0;
}
}
for(i=1;i<=n;i++)
printf("%d\n",a[i]);
return 0;
}