Pagini recente » runda/pregatire_oni_baraj_juniori | Cod sursa (job #1981143) | Cod sursa (job #821694) | Cod sursa (job #2242992) | Cod sursa (job #1449987)
#include <algorithm>
#include <fstream>
#define NMAX 10005
#define MMAX 100005
using namespace std;
ifstream f("oz.in");
ofstream g("oz.out");
struct elem{int x , y , d ;} v[MMAX];
int sol[NMAX] , n , m ;
bool comp(elem a , elem b){
return a.x < b.x || (a.x == b.x && a.y < b.y);
}
int cmmmc(int x , int y){
int r = x % y , x1 = x , y1 = y;
while(y){
r = x % y;
x = y ;
y = r ;
}
return x1 / x * y1 ;
}
int main()
{
f >> n >> m ;
for(int 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(int i = 1 ; i <= m ; ++i){
if(v[i].x == v[i - 1].x && v[i].y == v[i - 1].y && v[i].d != v[i - 1].d){
g << -1 ;
return 0;
}
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(int i = 1 ; i <= n ; ++i){
if(sol[i] == 0){
g << -1 ;
return 0;
}
}
for(int i = 1 ; i <= n ; ++i){
g << sol[i] << " ";
}
return 0;
}