Pagini recente » Cod sursa (job #831032) | Cod sursa (job #3040895) | Cod sursa (job #81010) | Cod sursa (job #355122) | Cod sursa (job #1414196)
# include <cstdio>
# define MAX 2000000000
# define MAXn 10005
# define MAXm 100005
using namespace std;
long long cmmdc (long long a, long long b)
{
int r;
r = a % b;
while (r)
{
a = b;
b = r;
r = a % b;
}
return b;
}
long long n, k, i;
long long a[MAXn],I[MAXm],J[MAXm],d[MAXm];
int main ()
{
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
scanf("%lld %lld\n",&n, &k);
for (i = 1; i <= n; i++)
a[i] = 1;
for (i = 1; i <= k; i++)
{
scanf("%lld %lld %lld\n", &I[i], &J[i], &d[i]);/*
a[I[i]] = 1LL * a[I[i]] * 1LL*(d[i] / cmmdc (d[i], a[I[i]]));
a[J[i]] = 1LL * a[J[i]] * 1LL*(d[i] / cmmdc (d[i], a[J[i]]));*/
int x=cmmdc(d[i],a[I[i]]);
int y=cmmdc(d[i],a[J[i]]);
a[I[i]]*=1LL*(d[i]/x);
a[J[i]]*=1LL*(d[i]/y);
}
bool ok = true;
for (i = 1; i <= k; i++)
if (d[i] != cmmdc (a[I[i]], a[J[i]]) || a[I[i]] > MAX)
{
printf("-1\n");
ok = false;
break;
}
if (ok == true)
for (i = 1; i <= n; i++)
printf("%lld ", a[i]);
return 0;
}