Pagini recente » Cod sursa (job #1627439) | Cod sursa (job #2348534) | Cod sursa (job #1631049) | Cod sursa (job #1573782) | Cod sursa (job #164761)
Cod sursa(job #164761)
#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<=m;i++){
scanf("%ld %ld %ld",&a,&b,&d);
if (v[a]&&v[b]){
aux=d;
d=d/cmmdc(d,v[a]);
if (limit/v[a]<d){printf("-1\n");return 0;}
v[a]*=d;
d=aux;
d=d/cmmdc(d,v[b]);
if (limit/v[b]<d){printf("-1\n");return 0;}
v[b]*=d;
if (cmmdc(v[a],v[b])>aux){printf("-1\n");return 0;}
}
else if (v[a]==0&&v[b]){
v[a]=d;
d=d/cmmdc(d,v[b]);
if (limit/v[b]<d){printf("-1\n");return 0;}
v[b]*=d;
}
else if (v[a]&&v[b]==0){
v[b]=d;
d=d/cmmdc(d,v[a]);
if (limit/v[a]<d){printf("-1\n");return 0;}
v[a]*=d;
}
else{
v[a]=d;
v[b]=d;
}
}
for (i=1;i<=n;i++)
if (v[i]==0){printf("-1\n");return 0;}
for (i=1;i<=n;i++)
printf ("%ld ",v[i]);
printf("\n");
return 0;
}