Pagini recente » Cod sursa (job #2454304) | Cod sursa (job #371407) | Cod sursa (job #2329709) | Cod sursa (job #2559160) | Cod sursa (job #428125)
Cod sursa(job #428125)
#include <cstdio>
typedef long long int64;
inline int64 cmmdc(int64 a,int64 b){
int64 r;
while(b){
r=a%b;
a=b;
b=r;
}
return a;
}
inline int64 cmmmc(int64 a,int64 b){
return 1L*a*b/cmmdc(a,b);
}
FILE* fin=fopen("oz.in","r");
FILE* fout=fopen("oz.out","w");
#define NMAX 10005
#define MMAX 100005
int64 n,m,v[NMAX],per[MMAX][3];
int main(){
fscanf(fin,"%lld %lld",&n,&m);
for(int i=0;i<n;i++){
v[i]=1;
}
for(int i=0;i<m;i++){
fscanf(fin,"%lld %lld %lld",&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,"%lld ",v[i]);
}
}else{
fprintf(fout,"-1");
}
fclose(fin);
fclose(fout);
return 0;
}