Pagini recente » Cod sursa (job #2546068) | Cod sursa (job #2701203) | Cod sursa (job #1534215) | Cod sursa (job #38742) | Cod sursa (job #2666255)
#include <stdio.h>
#include <stdlib.h>
int cmmdc(int a, int b){
int r;
while(b>0){
r=b;
b=a%b;
a=r;
}
return a;
}
int v[10000],a[100000],b[100000],d[100000];
int main(){
int n,m,i,j;
FILE *fin, *fout;
fin=fopen("oz.in","r");
fscanf(fin,"%d%d",&n,&m);
for(i=0;i<n;i++)
v[i]=1;
for(i=0;i<m;i++){
fscanf(fin,"%d%d%d",&a[i],&b[i],&d[i]);
a[i]--;
b[i]--;
if(v[a[i]]%d[i]!=0)
v[a[i]]=d[i]*v[a[i]]/cmmdc(v[a[i]],d[i]);
if(v[b[i]]%d[i]!=0)
v[b[i]]=d[i]*v[b[i]]/cmmdc(v[b[i]],d[i]);
}
fclose(fin);
i=0;
while(i<m&&cmmdc(v[a[i]],v[b[i]])==d[i])
i++;
fout=fopen("oz.out","w");
if(i==m){
for(i=0;i<n;i++)
fprintf(fout,"%d ",v[i]);
fprintf(fout,"\n");
} else
fprintf(fout,"-1\n");
fclose(fout);
return 0;
}