Pagini recente » Cod sursa (job #1967528) | Cod sursa (job #750302) | Cod sursa (job #2203946) | Cod sursa (job #1619764) | Cod sursa (job #193843)
Cod sursa(job #193843)
#include <cstdio>
#define VMAX
unsigned long long cmmdc(int x, int y)
{
int r;
do {
r = x % y;
x = y;
y = r;
} while(r);
return x;
}
int cmmmc(int x, int y)
{
unsigned long long rasp = (unsigned long long)x * (unsigned long long)y / cmmdc(x, y);
//return rasp > VMAX ? 0 : (int)rasp;
return (int)rasp;
}
int main()
{
int n, m, i, j, d, rasp = 1;
unsigned int x[10005], a[4][100005];
//int nj, ni;
FILE *f1, *f2;
f1 = fopen("oz.in", "r");
f2 = fopen("oz.out", "w");
fscanf(f1, "%d%d", &n, &m);
for (i = 1; i <= n; ++i) x[i] = 1;
for (int t = 1; t <= m; ++t) {
fscanf(f1, "%d%d%d", &i, &j, &d);
a[1][t] = i; a[2][t] = j; a[3][t] = d;
x[i] = cmmmc(x[i], d);
x[j] = cmmmc(x[j], d);
}
for (int t = 1; t <= m; ++t) {
i = a[1][t];
j = a[2][t];
d = a[3][t];
if (cmmdc(x[i], x[j]) != (unsigned)d) {
rasp = 0;
break;
}
}
if (rasp == 0) fprintf(f2, "-1\n");
else {
for (i = 1; i <= n; ++i)
fprintf(f2, "%d ", x[i]);
fprintf(f2, "\n");
}
fclose(f1);
fclose(f2);
return 0;
}