Pagini recente » Cod sursa (job #2887044) | Cod sursa (job #124865) | Cod sursa (job #1371738) | Cod sursa (job #2926024) | Cod sursa (job #153232)
Cod sursa(job #153232)
#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;
}