Pagini recente » Cod sursa (job #279077) | Cod sursa (job #940076) | Cod sursa (job #2228068) | Cod sursa (job #954507) | Cod sursa (job #153238)
Cod sursa(job #153238)
#include <stdio.h>
#define MMax 100005
#define NMax 10005
int N, M, v[NMax], X[MMax], Y[MMax], D[MMax];
int gcd(int a, int b)
{ return (b == 0 ? a : gcd(b, a % b)); }
int main(void)
{
int i, div;
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]);
div = gcd(v[X[i]], D[i]);
v[X[i]] = v[X[i]] * D[i] /div;
div = gcd(v[Y[i]], D[i]);
v[Y[i]] = v[Y[i]] * D[i] / div;
}
for (i = 1; i <= M; ++i)
{
div = gcd(v[X[i]], v[Y[i]]);
if (div != D[i])
{
printf("-1\n");
return 0;
}
}
for (i = 1; i < N; ++i)
printf("%d ", v[i]);
printf("%d\n", v[N]);
return 0;
}