Pagini recente » Cod sursa (job #2001185) | Diferente pentru home intre reviziile 679 si 678 | Cod sursa (job #248736) | Cod sursa (job #596525) | Cod sursa (job #236768)
Cod sursa(job #236768)
#include <stdio.h>
int a[10005],b[10005][3];
int n,m;
int euclid (int a,int b)
{
int r;
do
{
r=a%b;
a=b;
b=r;
}
while (r);
return a;
}
void read ()
{
int i,x,y,d;
scanf ("%d%d",&n,&m);
for (i=1; i<=n; ++i)
a[i]=1;
for (i=1; i<=m; ++i)
{
scanf ("%d%d%d",&b[i][0],&b[i][1],&b[i][2]);
a[b[i][0]]=a[b[i][0]]*b[i][2]/euclid (a[b[i][0]],b[i][2]);
a[b[i][1]]=a[b[i][1]]*b[i][2]/euclid (a[b[i][1]],b[i][2]);
}
}
int check ()
{
int i;
for (i=1; i<=m; ++i)
if (euclid (a[b[i][0]],a[b[i][1]])!=b[i][2])
return 0;
return 1;
}
void print ()
{
int i;
for (i=1; i<=n; ++i)
printf ("%d ",a[i]);
}
int main ()
{
freopen ("oz.in","r",stdin);
freopen ("oz.out","w",stdout);
read ();
if (check ())
print ();
else
printf ("-1");
return 0;
}