Pagini recente » Cod sursa (job #2638228) | Cod sursa (job #68578) | Cod sursa (job #2152383) | Cod sursa (job #1910707) | Cod sursa (job #428123)
Cod sursa(job #428123)
#include <cstdio>
inline int cmmdc(int a,int b){
int r;
while(b){
r=a%b;
a=b;
b=r;
}
return a;
}
inline int cmmmc(int a,int b){
return 1L*a*b/cmmdc(a,b);
}
FILE* fin=fopen("oz.in","r");
FILE* fout=fopen("oz.out","w");
#define NMAX 10000
#define MMAX 100000
int n,m,v[NMAX],per[MMAX][3];
int main(){
fscanf(fin,"%d %d",&n,&m);
for(int i=0;i<n;i++){
v[i]=1;
}
for(int i=0;i<m;i++){
fscanf(fin,"%d %d %d",&per[i][0],&per[i][1],&per[i][2]);
v[per[i][0]-1]=cmmmc(v[per[i][0]-1],per[i][2]);
v[per[i][1]-1]=cmmmc(v[per[i][1]-1],per[i][2]);
}
bool good=true;
for(int i=0;i<m;i++){
if(cmmdc(v[per[i][0]-1],v[per[i][1]-1])!=per[i][2]){
good=false;
break;
}
}
if(good){
for(int i=0;i<n;i++){
fprintf(fout,"%d ",v[i]);
}
}else{
fprintf(fout,"-1");
}
fclose(fin);
fclose(fout);
return 0;
}