Pagini recente » Cod sursa (job #2399751) | Cod sursa (job #571553) | Cod sursa (job #574010) | Cod sursa (job #1825529) | Cod sursa (job #2634646)
#include <fstream>
using namespace std;
ifstream cin( "oz.in" );
ofstream cout( "oz.out" );
long long v[ 10007 ];
struct Andrei{
int l, r;
int d;
} a[ 100007 ];
long long cmmdc( int x, int y ){
int r = 0;
while( y ){
r = x % y;
x = y;
y = r;
}
return ( long long )x;
}
int main()
{
int n, m, i, j, d;
cin >> n >> m;
for( i = 1; i <= n; i++ )
v[ i ] = 1;
for( int k = 1; k <= m; k++ ){
cin >> i >> j >> d;
v[ i ] = v[ i ] * d / cmmdc( v[ i ], d );
v[ j ] = v[ j ] * d / cmmdc( v[ j ], d );
a[ k ].l = i;
a[ k ].r = j;
a[ k ].d = d;
}
for( i = 1; i <= n; i++ )
if( v[ i ] > 2000000000 || v[ i ] < 0 ){
cout << -1;
return 0;
}
for( i = 1; i <= m; i++ )
if( cmmdc( v[ a[ i ].l ], v[ a[ i ].r ] ) != a[ i ].d ){
cout << -1;
return 0;
}
for( int i = 1; i <= n; i++ )
cout << v[ i ] << ' ';
return 0;
}