Pagini recente » Cod sursa (job #1269027) | Cod sursa (job #2271212) | Cod sursa (job #922022) | Cod sursa (job #259711) | Cod sursa (job #205296)
Cod sursa(job #205296)
#include <stdio.h>
#define maxn 10010
#define maxm 100010
#define stop 2000000000
int n, m;
int a[maxn];
int x[maxm], y[maxm], d[maxm];
int GCD(int a, int b)
{
int aux;
while (b)
{
aux = a%b;
a = b;
b = aux;
}
return a;
}
int main()
{
freopen("oz.in", "r", stdin);
freopen("oz.out", "w", stdout);
scanf("%d %d ", &n, &m);
int i, aux;
for (i=1; i<=n; i++) a[i] = 1;
for (i=1; i<=m; i++)
{
scanf("%d %d %d ", &x[i], &y[i], &d[i]);
aux = GCD(a[x[i]], d[i]);
if (1LL * a[x[i]] * (d[i]/aux) > stop)
{
printf("-1\n");
return 0;
}
else a[x[i]] *= d[i]/aux;
aux = GCD(a[y[i]], d[i]);
if (1LL * a[y[i]] * (d[i]/aux) > stop)
{
printf("-1\n");
return 0;
}
else a[y[i]] *= d[i]/aux;
}
for (i=1; i<=m; i++)
{
aux = GCD(a[x[i]], a[y[i]]);
if (aux != d[i])
{
printf("-1\n");
return 0;
}
}
for (i=1; i<=n; i++) printf("%d ", a[i]);
printf("\n");
return 0;
}