Pagini recente » Cod sursa (job #2073142) | Cod sursa (job #2415614) | Cod sursa (job #237631) | Cod sursa (job #734513) | Cod sursa (job #164743)
Cod sursa(job #164743)
#include <stdio.h>
#define limit 2000000000
long n,m,i,a,b,d,v[10005];
long cmmdc(long a,long b){
while (1){
if (a>b){a=a%b;if (!a)return b;}
else {b=b%a;if (!b)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]){
d=d/cmmdc(d,cmmdc(v[a],v[b]));
if (limit/v[a]<d||limit/v[b]<d){printf("-1\n");return 0;}
v[a]*=d;
v[b]*=d;
}
else if (v[a]==0&&v[b]){
v[a]=d;
d=d/cmmdc(d,v[b]);
v[b]*=d;
}
else if (v[a]&&v[b]==0){
v[b]=d;
d=d/cmmdc(d,v[a]);
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;
}