Pagini recente » Cod sursa (job #320203) | Cod sursa (job #2575738) | Cod sursa (job #2830129) | Cod sursa (job #2676003) | Cod sursa (job #1474998)
#include <stdio.h>
#define MAXN 10000
#define MAXM 100000
#define INF 2000000000
int v[MAXN];
inline int cmmdc(int a, int b){
int r;
while(b > 0){
r = a % b;
a = b;
b = r;
}
return a;
}
int main(){
FILE *in = fopen("oz.in", "r");
int n, m, i, x, y, z, c;
long long p;
char g = 0;
fscanf(in, "%d%d", &n, &m);
for(i = 0; i < n; i++)
v[i] = 1;
for(i = 0; i < m; i++){
fscanf(in, "%d%d%d", &x, &y, &z);
x--; y--;
c = cmmdc(z, v[x]);
p = 1LL * v[x] * z / c;
if(p <= INF)
v[x] = p;
else
g = 1;
c = cmmdc(z, v[y]);
p = 1LL * v[y] * z / c;
if(p <= INF)
v[y] = p;
else
g = 1;
}
fclose(in);
in = fopen("oz.in", "r");
fscanf(in, "%d%d", &n, &m);
for(i = 0; i < m; i++){
fscanf(in, "%d%d%d", &x, &y, &z);
x--; y--;
if(cmmdc(v[x], v[y]) != z)
g = 1;
}
fclose(in);
FILE *out = fopen("oz.out", "w");
if(g)
fprintf(out, "-1");
else{
for(i = 0; i < n; i++)
fprintf(out, "%d ", v[i]);
}
fclose(out);
return 0;
}