Pagini recente » Cod sursa (job #1960129) | Cod sursa (job #486809) | Cod sursa (job #2687828) | Cod sursa (job #2575263) | Cod sursa (job #1450003)
#include <algorithm>
#include <fstream>
#define NMAX 10005
#define MMAX 100005
using namespace std;
ifstream f("oz.in");
ofstream g("oz.out");
struct elem{long long x , y , d ;} v[MMAX];
long long sol[NMAX] , n , m ;
bool comp(elem a , elem b){
return a.x < b.x || (a.x == b.x && a.y < b.y);
}
long long cmmdc(long long x , long long y){
long long r = x % y;
while(y){
r = x % y;
x = y ;
y = r ;
}
return x ;
}
long long cmmmc(long long x , long long y){
return x / cmmdc(x , y) * y ;
}
int main()
{
f >> n >> m ;
for(long long i = 1 ; i <= m ; ++i){
f >> v[i].x >> v[i].y >> v[i].d ;
if(v[i].x < v[i].y){
swap(v[i].x , v[i].y);
}
}
sort(v + 1 , v + m + 1 , comp);
for(long long i = 1 ; i <= m ; ++i){
if(sol[v[i].x] == 0){
sol[v[i].x] = v[i].d;
}
else{
sol[v[i].x] = cmmmc(sol[v[i].x] , v[i].d);
}
if(sol[v[i].y] == 0){
sol[v[i].y] = v[i].d;
}
else{
sol[v[i].y] = cmmmc(sol[v[i].y] , v[i].d);
}
}
for(long long i = 1 ; i <= n ; ++i){
if(sol[i] == 0){
g << -1 ;
return 0;
}
}
for(long long i = 1 ; i <= m ; ++i){
if(cmmdc(sol[v[i].x] , sol[v[i].y]) != v[i].d){
g << - 1 ;
return 0 ;
}
}
for(long long i = 1 ; i <= n ; ++i){
g << sol[i] << " " ;
}
return 0;
}