Pagini recente » Cod sursa (job #2839580) | Cod sursa (job #44501) | Cod sursa (job #1224592) | Cod sursa (job #2698358) | Cod sursa (job #2659865)
#include <stdio.h>
#define NMAX 10000
#define MMAX 100000
#define MAX 2000000000
int x[MMAX], y[MMAX], d[MMAX];
long long v[NMAX];
long long cmmdc( int a, int b ) {
int r;
while ( b > 0 ) {
r = a % b;
a = b;
b = r;
}
return a;
}
int main() {
FILE *fin, *fout;
int n, m, i, j;
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", &x[i], &y[i], &d[i] );
x[i]--;
y[i]--;
v[x[i]] = (long long)(v[x[i]] * d[i] / cmmdc( v[x[i]], d[i] ));
v[y[i]] = (long long)(v[y[i]] * d[i] / cmmdc( v[y[i]], d[i] ));
}
fclose( fin );
j = 0;
while ( j < n && v[j] > 0 && v[j] <= MAX )
j++;
i = 0;
if ( j == n ) {
while ( i < m && cmmdc( v[x[i]], v[y[i]] ) == d[i] )
i++;
}
fout = fopen( "oz.out", "w" );
if ( i == m ) {
for ( i = 0; i < n; i++ )
fprintf( fout, "%lld ", v[i] );
} else
fprintf( fout, "-1" );
fclose( fout );
return 0;
}