Pagini recente » Cod sursa (job #814508) | Cod sursa (job #2186728) | Cod sursa (job #2471220) | Cod sursa (job #2082231) | Cod sursa (job #219464)
Cod sursa(job #219464)
#include <stdio.h>
#include <math.h>
#include <cstdlib>
long long i, m, n, p1[20010], p2[20010], vq[200010], dv[20010];
long long gcd(long long a, long long b) {
long long r = 0;
r = a % b;
while (r != 0) {
a = b;
b = r;
r = a % b;
}
if (b == 0) {
return 1;
}
return b;
}
void check() {
for (long i = 1; i <= m; ++i) {
if (gcd(vq[p1[i]], vq[p2[i]]) != dv[i]) {
printf("-1");
exit(0);
}
}
}
int main() {
freopen("oz.in", "r", stdin);
freopen("oz.out", "w", stdout);
scanf("%lld %lld", &n, &m);
for (i = 1; i <= n; ++i) vq[i] = 1;
for (i = 1; i <= m; ++i) {
scanf("%lld %lld %lld", &p1[i], &p2[i], &dv[i]);
if (vq[p1[i]] <= 0 || vq[p2[i]] <= 0) {
printf("-1");
exit(0);
}
vq[p1[i]] = ((long long)vq[p1[i]] * dv[i]) / gcd(vq[p1[i]], dv[i]);
vq[p2[i]] = ((long long)vq[p2[i]] * dv[i]) / gcd(vq[p2[i]], dv[i]);
}
//check();
for (i = 1; i <= n; ++i) {
printf("%lld ", vq[i]);
}
return 0;
}