Pagini recente » Cod sursa (job #935950) | Cod sursa (job #2097171) | Cod sursa (job #2005382) | Cod sursa (job #1805725) | Cod sursa (job #166320)
Cod sursa(job #166320)
#include <stdio.h>
#define limit 2000000000
long n,m,i,a,b,d,v[10005],aux;
long cmmdc(long a,long b){
while (a!=b){
if (a>b){a=a%b;if (!a)a=b;}
else {b=b%a;if (!b)b=a;}
}
return a;
}
int main(){
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
scanf("%ld %ld",&n,&m);
for (i=1;i<=n;i++)
v[i]=1;
for (i=1;i<=m;i++){
scanf("%ld %ld %ld",&a,&b,&d);
v[a]/=cmmdc(v[a],d);
if (limit/v[a]<d){printf("-1\n");return 0;}
v[a]*=d;
v[b]/=cmmdc(v[b],d);
if (limit/v[b]<d){printf("-1\n");return 0;}
v[b]*=d;
}
for (i=1;i<=n;i++)
if (v[i]==0){printf("-1\n");return 0;}
//verificare
fseek(stdin,0,0);
scanf("%ld %ld",&n,&m);
for (i=1;i<=m;i++){
scanf("%ld %ld %ld",&a,&b,&d);
if (cmmdc(v[a],v[b])!=d){printf("-1\n");return 0;}
}
for (i=1;i<=n;i++)
printf ("%ld ",v[i]);
printf("\n");
return 0;
}