Pagini recente » Istoria paginii runda/simulare_etc/clasament | Istoria paginii runda/tp_sim/clasament | Monitorul de evaluare | Istoria paginii runda/prega_oji2015_x_1/clasament | Cod sursa (job #2079086)
#include <fstream>
#define DEFN 10010
#define DEFM 100010
#define INF 2000001
using namespace std;
ifstream fin ("oz.in");
ofstream fout ("oz.out");
int a[DEFM][3], n, m;
int v[DEFN];
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]] / cmmdc (v[a[i][1]], a[i][0]) * a[i][0];
v[a[i][2]] = 1LL * v[a[i][2]] / cmmdc (v[a[i][2]], a[i][0]) * a[i][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;
}