Pagini recente » Cod sursa (job #129675) | Cod sursa (job #1342664) | Istoria paginii runda/asta_i_pt_shumen | Istoria paginii runda/plictiseala/clasament | Cod sursa (job #2079077)
#include <fstream>
#define DEF 10010
#define INF 2000001
using namespace std;
ifstream fin ("oz.in");
ofstream fout ("oz.out");
int a[10*DEF][3], n, m;
long long v[DEF];
int cmmdc (int a, int b) {
int r;
while (b) {
r = a % b;
a = b;
b = r;
}
return a;
}
int main () {
fin >> n >> m;
for (int i = 1; i <= n; ++ i) {
v[i] = 1;
}
for (int i = 1; i <= m; ++ i) {
fin >> a[i][1] >> a[i][2] >> a[i][0];
v[a[i][1]] = 1LL * v[a[i][1]] * a[i][0] / cmmdc (v[a[i][1]], a[i][0]);
if (v[a[i][1]] > INF) {
fout << "-1";
return 0;
}
v[a[i][2]] = 1LL * v[a[i][2]] * a[i][0] / cmmdc (v[a[i][2]], a[i][0]);
if (v[a[i][2]] > INF) {
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;
}