Pagini recente » Cod sursa (job #1018890) | Cod sursa (job #896575) | Cod sursa (job #427947) | Cod sursa (job #2959656) | Cod sursa (job #2655348)
#include <stdio.h>
#define NMAX 10000
#define MMAX 100000
int sol[NMAX + 1], x[MMAX + 1], y[MMAX + 1], d[MMAX + 1];
int cmmdc(int a, int b) {
int r;
while (b) {
r = a % b;
a = b;
b = r;
}
return a;
}
void init(int n) {
int i;
for (i = 1; i <= n; i++)
sol[i] = 1;
}
int main() {
FILE *fin, *fout;
int n, m, i;
fin = fopen("oz.in", "r");
fscanf(fin, "%d%d", &n, &m);
init(n);
for (i = 0; i < m; i++) {
fscanf(fin, "%d%d%d", &x[i], &y[i], &d[i]);
sol[x[i]] = (sol[x[i]] * d[i]) / cmmdc(sol[x[i]], d[i]);
sol[y[i]] = (sol[y[i]] * d[i]) / cmmdc(sol[y[i]], d[i]);
}
fclose( fin );
i = 0;
while (i < m && cmmdc(sol[x[i]], sol[y[i]]) == d[i])
i++;
fout = fopen("oz.out", "w");
if (i == m)
for (i = 1; i <= n; i++)
fprintf(fout, "%d ", sol[i]);
else
fprintf(fout, "-1");
return 0;
}