Pagini recente » Cod sursa (job #2808531) | Cod sursa (job #1311621) | Cod sursa (job #1051659) | Cod sursa (job #1892210) | Cod sursa (job #236902)
Cod sursa(job #236902)
#include<stdio.h>
int n,m;
int sol[10001];
struct dat{
int x;
int y;
int d;
};
dat sir[100001];
int cmmdc(int a,int b)
{
int r;
while(b!=0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
int cmmmc(int a,int b)
{
return (a*b)/cmmdc(a,b);
}
void citire()
{
scanf("%d %d",&m,&n);
for(int i=1;i<=m;i++)
sol[i]=1;
for(int i=1;i<=n;i++)
{
scanf("%d %d %d",&sir[i].x,&sir[i].y,&sir[i].d);
sol[sir[i].x]=cmmmc(sol[sir[i].x],sir[i].d);
sol[sir[i].y]=cmmmc(sol[sir[i].y],sir[i].d);
}
}
int verif()
{
for(int i=1;i<=n;i++)
{
if(cmmdc(sol[sir[i].x],sol[sir[i].y])!=sir[i].d)
return 0;
}
return 1;
}
int main()
{
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
citire();
if(verif())
for(int i=1;i<=m;i++)
printf("%d ",sol[i]);
else printf("-1");
return 0;
}