Pagini recente » Cod sursa (job #2615588) | Cod sursa (job #1455561) | Cod sursa (job #2539536) | Cod sursa (job #1752961) | Cod sursa (job #3188713)
#include <stdio.h>
#define MAXN 10000
long long v[MAXN];
int triplete[MAXN][3];
long long gcd(long long a, long long b) {
long long r;
while(b > 0) {
r = a % b;
a = b;
b = r;
}
return a;
}
long long lcm(long long a, long long b) {
return a / gcd(a, b) * b;
}
int main() {
FILE *fin, *fout;
int n, m, i;
fin = fopen("oz.in", "r");
fscanf(fin, "%d%d", &n, &m);
for(i = 0; i < n; i++)
v[i] = 1LL;
for(i = 0; i < m; i++) {
fscanf(fin, "%d%d%d", &triplete[i][0], &triplete[i][1], &triplete[i][2]);
v[triplete[i][0] - 1] = lcm(v[triplete[i][0] - 1], triplete[i][2]);
v[triplete[i][1] - 1] = lcm(v[triplete[i][1] - 1], triplete[i][2]);
}
fclose(fin);
fout = fopen("oz.out", "w");
if(i < m) {
fprintf(fout, "-1\n");
} else {
for(i = 0; i < n; i++) {
fprintf(fout, "%lld ", v[i]);
}
fputc('\n', fout);
}
fclose(fout);
return 0;
}