Pagini recente » Cod sursa (job #1928564) | Cod sursa (job #2819821) | Cod sursa (job #2858607) | Cod sursa (job #267455) | Cod sursa (job #3189180)
#include <bits/stdc++.h>
using namespace std;
const int nmax = 10000, mmax = 100000;
long long a[nmax];
int qi[mmax], qj[mmax], qd[mmax];
long long gcd(long long a, long long b) {
long long r;
while (b) {
r = a % b;
a = b;
b = r;
}
return a;
}
long long lcm(long long a, long long b) {
return a / gcd(a, b) * b;
}
int main() {
ifstream fin("oz.in");
ofstream fout("oz.out");
int n, m, i, ok;
fin >> n >> m;
for (i = 0; i < n; ++i) {
a[i] = 1;
}
for (i = 0; i < m; ++i) {
fin >> qi[i] >> qj[i] >> qd[i];
--qi[i];
--qj[i];
a[qi[i]] = lcm(a[qi[i]], qd[i]);
a[qj[i]] = lcm(a[qj[i]], qd[i]);
}
ok = 1;
for (i = 0; i < m; ++i) {
if (gcd(a[qi[i]], a[qj[i]]) != qd[i]) {
ok = 0;
}
}
if (ok) {
for (i = 0; i < n; ++i) {
fout << a[i] << ' ';
}
fout << '\n';
} else {
fout << "-1\n";
}
fin.close();
fout.close();
return 0;
}