Pagini recente » Cod sursa (job #1349126) | Cod sursa (job #1439362) | Cod sursa (job #165199) | Cod sursa (job #3166609) | Cod sursa (job #1013300)
#include<stdio.h>
FILE *f=fopen("oz.in","r"), *g=fopen("oz.out","w");
long int n, m, v[10004], x[100004], y[100004], z[100004], ok, q;
long int cmmdc(long int a, long int b){
long int r;
r=a%b;
while(r!=0){
a=b; b=r; r=a%b;
} return b;
}
long int cmmmc(long int a, long int b){
return (a*b)/cmmdc(a,b);
}
void initializare(){
long int i;
for(i=1;i<=n;i++){
v[i]=1;
}
}
int main(){
fscanf(f,"%ld %ld\n",&n,&m);
initializare();
for(long int i=1;i<=m;i++){
fscanf(f,"%ld %ld %ld\n",&x[i],&y[i],&z[i]);
v[x[i]]=cmmmc(v[x[i]],z[i]);
v[y[i]]=cmmmc(v[y[i]],z[i]);
}
ok=1;
for(long int i=1;i<=m;i++){
q= cmmdc(v[x[i]],v[y[i]]);
if(q!=z[i]){ok=-1;break;}
}
if(ok==-1){fprintf(g,"-1\n");}
else{for(long int i=1;i<=n;i++){fprintf(g,"%ld ",v[i]);}}
return 0;
}