Pagini recente » Diferente pentru home intre reviziile 81 si 82 | Cod sursa (job #2320544) | Cod sursa (job #2854648) | Cod sursa (job #1213853) | Cod sursa (job #2866740)
#include <stdio.h>
#include <stdlib.h>
long long v[10004];
long long v2[3][100005];
long long cmmdc(long long a,long long b){
long long aux;
if(b==0){
return a;
}
aux=a%b;
a=b;
b=aux;
return cmmdc(a,b);
}
int main(){
long long n,k,i,x,y,d,s,aux;
FILE *fin,*fout;
fin=fopen("oz.in","r");
fout=fopen("oz.out","w");
fscanf(fin,"%lld%lld",&n,&k);
for(i=0;i<k;i++){
fscanf(fin,"%lld%lld%lld",&x,&y,&d);
v2[0][i]=x;
v2[1][i]=y;
v2[2][i]=d;
if(v[x]==0){
v[x]=d;
}else{
v[x]=(v[x]*d)/cmmdc(v[x],d);
}
if(v[y]==0){
v[y]=d;
}else{
v[y]=(v[y]*d)/cmmdc(v[y],d);
}
}
s=0;
for(i=0;i<k;i++){
if(cmmdc(v[v2[0][i]],v[v2[1][i]])!=v2[2][i]){
s=1;
}
}
if(s==0){
for(i=1;i<=n;i++){
fprintf(fout,"%lld ",v[i]);
}
}else{
fprintf(fout,"-1");
}
fclose(fin);
fclose(fout);
return 0;
}