Pagini recente » Cod sursa (job #1027669) | Cod sursa (job #2916028) | Cod sursa (job #925345) | Cod sursa (job #2189072) | Cod sursa (job #1201644)
#include <cstdio>
#define rint register int
const char IN[] ="oz.in";
const char OUT[] ="oz.out";
const int MAX = 100100;
using namespace std;
int cmmdc(int a,int b){
int r;
while(r=a%b){
a=b;
b=r;
}
return b;
}
struct bag{
int x,y,d;
};
bag q[MAX];
int v[MAX/10];
int main()
{
int n,m;
freopen( IN ,"r" , stdin);
freopen( OUT ,"w" ,stdout);
scanf("%d%d",&n,&m);
for( rint i=1; i <= n ;++i )v[i]=1;
for( rint i=1; i <= m; ++ i){
scanf("%d%d%d",&q[i].x,&q[i].y,&q[i].d);
v[q[i].x]=1LL * v[q[i].x] * q[i].d/(cmmdc(v[q[i].x],q[i].d));
v[q[i].y]=1LL * v[q[i].y] * q[i].d/(cmmdc(v[q[i].y],q[i].d));
}
for( rint i=1 ; i<=m ; ++i ){
if(cmmdc(v[q[i].x],v[q[i].y])!=q[i].d){
printf("-1\n");
return 0;
}
}
for( rint i=1 ; i<=n ; ++i)printf("%d ",v[i]);
return 0;
}