Pagini recente » Cod sursa (job #2417493) | Cod sursa (job #550327) | Cod sursa (job #3132701) | Cod sursa (job #3165672) | Cod sursa (job #1833230)
#include <cstdio>
const int MAX_N = 10000;
const int MAX_M = 100000;
int v[MAX_N];
int p1[MAX_M], p2[MAX_M], d[MAX_M];
inline int cmmdc(int a, int b) {
int r;
while(b != 0) {
r = a % b;
a = b;
b = r;
}
return a;
}
typedef long long i64;
inline int cmmmc(int a, int b) {
return (i64)a * b / cmmdc(a, b);
}
int main() {
int n, m;
FILE *fin = fopen("oz.in", "r");
fscanf(fin, "%d%d", &n, &m);
for(int i = 0; i < n; ++i)
v[i] = 1;
for(int i = 0; i < m; ++i) {
fscanf(fin, "%d%d%d", &p1[i], &p2[i], &d[i]);
--p1[i];
--p2[i];
v[p1[i]] = cmmmc(v[p1[i]], d[i]);
v[p2[i]] = cmmmc(v[p2[i]], d[i]);
}
fclose(fin);
bool ok = true;
for(int i = 0; i < m; ++i)
if(cmmdc(v[p1[i]], v[p2[i]]) != d[i])
ok = false;
FILE *fout = fopen("oz.out", "w");
if(ok)
for(int i = 0; i < n; ++i)
fprintf(fout, "%d ", v[i]);
else
fprintf(fout, "-1");
fclose(fout);
return 0;
}