Pagini recente » Cod sursa (job #2233483) | Cod sursa (job #228153) | Cod sursa (job #1577504) | Cod sursa (job #634176) | Cod sursa (job #973954)
Cod sursa(job #973954)
#include <cstdio>
#define SIZE 100002
using namespace std;
int n, m, i, x[SIZE], y[SIZE], d[SIZE];
long long v[10002];
long long gcd(long long x, long long y)
{
if(x==1 || y==1)
return 1;
int r=x%y;
while(r)
{
x=y; y=r; r=x%y;
}
return y;
}
long long lcm(int x, int y)
{
return (long long)(x*y/gcd(x, y));
}
bool verif()
{
for(int i=1;i<=m;++i)
if(gcd(v[x[i]], v[y[i]])!=d[i])
return 0;
return 1;
}
int main()
{
freopen("oz.in", "r", stdin);
freopen("oz.out", "w", stdout);
scanf("%d %d", &n, &m);
for(i=1;i<=n;++i)
v[i]=1;
for(i=1;i<=m;++i)
{
scanf("%d %d %d", &x[i], &y[i], &d[i]);
v[x[i]]=lcm(v[x[i]], d[i]);
v[y[i]]=lcm(v[y[i]], d[i]);
}
if(verif())
for(i=1;i<=n;++i)
printf("%lld ", v[i]);
else
printf("-1\n");
return 0;
}