Pagini recente » Cod sursa (job #1121763) | Cod sursa (job #2565134) | Cod sursa (job #1493092) | Cod sursa (job #93897) | Cod sursa (job #2655350)
#include <stdio.h>
#define NMAX 10000
#define MMAX 100000
int x[MMAX + 1], y[MMAX + 1], d[MMAX + 1];
long long sol[NMAX + 1];
long long cmmdc(long long a, long long 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);
i = 0;
while (i < m) {
fscanf(fin, "%d%d%d", &x[i], &y[i], &d[i]);
sol[x[i]] = ( long long ) (( (long long ) sol[x[i]] * d[i]) / cmmdc(sol[x[i]], d[i]));
sol[y[i]] = ( long long ) (( long long )(sol[y[i]] * d[i]) / cmmdc(sol[y[i]], d[i]));
i++;
}
fclose( fin );
i = 0;
while (i < m && cmmdc(sol[x[i]], sol[y[i]]) == d[i] && sol[x[i]] >= 1 && sol[x[i]] < 2000000000 && sol[y[i]] >= 1 && sol[y[i]] < 2000000000)
i++;
fout = fopen("oz.out", "w");
if (i == m)
for (i = 1; i <= n; i++)
fprintf(fout, "%lld", sol[i]);
else
fprintf(fout, "-1");
return 0;
}