Pagini recente » Cod sursa (job #3160639) | Cod sursa (job #1491852) | Cod sursa (job #2334345) | Cod sursa (job #642543) | Cod sursa (job #166139)
Cod sursa(job #166139)
#include<stdio.h>
struct diviz{
int a,b;
long long d;
}nr[100100];
long long sol[10100];
int cmmdc(int a,int b){
if(!b)
return a;
return cmmdc(b,a%b);
}
int main(){
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
int n,m,i,ok,a,b;
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i)
sol[i]=1;
for(i=0;i<m;++i){
scanf("%d%d%lld",&nr[i].a,&nr[i].b,&nr[i].d);
a=nr[i].a;
b=nr[i].b;
sol[a]=(sol[a]*nr[i].d)/cmmdc(sol[a],nr[i].d);
sol[b]=(sol[b]*nr[i].d)/cmmdc(sol[b],nr[i].d);
}
ok=1;
for(i=0;i<m && ok;++i){
if(cmmdc(sol[nr[i].a],sol[nr[i].b])!=nr[i].d)
ok=0;
}
if(!ok){
printf("-1\n");
fclose(stdin);
fclose(stdout);
return 0;
}
for(i=1;i<n;++i)
printf("%lld ",sol[i]);
printf("%lld\n",sol[n]);
fclose(stdin);
fclose(stdout);
return 0;
}