Pagini recente » Cod sursa (job #884854) | Cod sursa (job #2529705) | Cod sursa (job #1859118) | Cod sursa (job #2258655) | Cod sursa (job #2717371)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
int cmmdc(int a, int b) {
while (b > 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
int cmmmc(int a, int b) {
return (a * b) / cmmdc(a, b);
}
struct node {
int a, b, d;
};
int main() {
ifstream::sync_with_stdio(0);
fin.tie(0);
int n, m;
fin >> n >> m;
vector <int> S(n + 1, 1);
vector <node> nodes;
for (int a, b, d, i = 0; i < m; ++i) {
fin >> a >> b >> d;
nodes.push_back({a, b, d});
S[a] = cmmmc(S[a], d);
S[b] = cmmmc(S[b], d);
}
bool ok = true;
for (node x : nodes) {
if (cmmdc(S[x.a], S[x.b]) != x.d) {
ok = false;
}
}
if (ok) {
for (int i = 1; i < S.size(); ++i) {
fout << S[i] << ' ';
}
} else {
fout << -1 << '\n';
}
fout << '\n';
return 0;
}