Pagini recente » Cod sursa (job #2872155) | Cod sursa (job #2490065) | Cod sursa (job #1490324) | Cod sursa (job #1939567) | Cod sursa (job #1901857)
/* ( ‘_>’) */
#include <stdio.h>
#define MAX_N 10000
#define MAX_M 100000
int numere[MAX_N], t1[MAX_M], t2[MAX_M], t3[MAX_M];
inline int cmmdc(int a, int b) {
int r;
while (b > 0) {
r = a % b;
a = b;
b = r;
}
return a;
}
inline int cmmmc(int a, int b) {
return (long long)a * b / cmmdc(a, b);
}
int main() {
FILE *fin, *fout;
int n, m;
int k;
fin = fopen("oz.in", "r");
fscanf(fin, "%d%d", &n, &m);
for (k = 0; k < n; k++)
numere[k] = 1;
for (k = 0; k < m; k++) {
fscanf(fin, "%d%d%d", &t1[k], &t2[k], &t3[k]);
t1[k]--;
t2[k]--;
numere[t1[k]] = cmmmc(numere[t1[k]], t3[k]);
numere[t2[k]] = cmmmc(numere[t2[k]], t3[k]);
}
fclose(fin);
k = 0;
while (k < m && cmmdc(numere[t1[k]], numere[t2[k]]) == t3[k])
k++;
fout = fopen("oz.out", "w");
if (k < m)
fprintf(fout, "%d", -1);
else
for (k = 0; k < n; k++)
fprintf(fout, "%d ", numere[k]);
return 0;
}