Pagini recente » Cod sursa (job #3128545) | Cod sursa (job #83600) | Monitorul de evaluare | Cod sursa (job #2010944) | Cod sursa (job #2076879)
#include <fstream>
#define DEF 10010
#define INF 2000001
using namespace std;
ifstream fin ("oz.in");
ofstream fout ("oz.out");
int v[DEF], a[10*DEF][3], n, m;
int cmmdc (int a, int b) {
if (!b)
return a;
return cmmdc (b, a % b);
}
long long cmmmc (long a, long b) {
return (a / (long long)(cmmdc (a, b))) * b;
}
int main () {
fin >> n >> m;
for (int i = 1; i <= m; ++ i) {
fin >> a[i][1] >> a[i][2] >> a[i][0];
if (v[a[i][1]] == 0) {
v[a[i][1]] = 1;
}
if (v[a[i][2]] == 0) {
v[a[i][2]] = 1;
}
long long x;
x = cmmmc (v[a[i][1]], a[i][0]);
if (x < INF)
v[a[i][1]] = x;
else {
fout << "-1";
return 0;
}
x = cmmmc (v[a[i][2]], a[i][0]);
if (x < INF)
v[a[i][2]] = x;
else {
fout << "-1";
return 0;
}
}
for (int i = 1; i <= m; ++ i) {
if (cmmdc (v[a[i][1]], v[a[i][2]]) != a[i][0]) {
fout << "-1";
return 0;
}
}
for (int i = 1; i <= n; ++ i)
fout << v[i] << " ";
return 0;
}