Pagini recente » Cod sursa (job #3141368) | Cod sursa (job #3286534) | Cod sursa (job #3287518) | Cod sursa (job #2913690) | Cod sursa (job #2660971)
#include <stdio.h>
#include <stdlib.h>
///la prima trimitere am uitat sa iau cazul ca nu exista solutie
int v[10000], in[3][100000];
int cmmdc(int a, int b){
int r;
if(a < b){
r = a;
a = b;
b = r;
}
while(0 < b){
r = a % b;
a = b;
b = r;
}
return a;
}
int main()
{
FILE *fin, *fout;
int n, m, x, y, d, i, solutie;
fin = fopen("oz.in", "r");
fscanf(fin, "%d%d", &n, &m);
for(i = 0; i < n; i++){
v[i] = 1;
}
for(i = 0; i < m; i++){
fscanf(fin, "%d%d%d", &in[0][i], &in[1][i], &in[2][i]);
v[in[0][i] - 1] = v[in[0][i] - 1] / cmmdc(v[in[0][i] - 1], in[2][i]) * in[2][i];
v[in[1][i] - 1] = v[in[1][i] - 1] / cmmdc(v[in[1][i] - 1], in[2][i]) * in[2][i];
}
solutie = 0;
for(i = 0; i < m; i++){
if(cmmdc(v[in[0][i] - 1], v[in[1][i] - 1]) != in[2][i]){
solutie = -1;
}
}
fclose(fin);
fout = fopen("oz.out", "w");
if(solutie == 0){
for(i = 0; i < n; i++){
fprintf(fout, "%d ", v[i]);
}
}else{
fprintf(fout, "-1");
}
fclose(fout);
return 0;
}