Pagini recente » Cod sursa (job #434248) | Cod sursa (job #2515277) | Cod sursa (job #2773459) | Cod sursa (job #2343427) | Cod sursa (job #1151781)
#include <iostream>
#include <fstream>
#define LL long long
#define DN 10005
#define DM 100005
using namespace std;
ifstream f("oz.in");
ofstream g("oz.out");
struct st{
LL a,b,c;
}M[DM];
LL v[DN],n,m;
LL cmmdc(LL a,LL b){
LL c;
while(b){
c=a%b;
a=b;
b=c;
}
return a;
}
LL cmmmc(LL a,LL b){
return (a*b)/cmmdc(a,b);
}
void init(){
for(int i=1;i<=n;++i)
v[i] = 1;
}
void read(){
f>>n>>m;
init();
for(int i=1;i<=m;++i){
LL a,b,d;
f>>a>>b>>d;
M[i].a = a; M[i].b = b; M[i].c = d;
v[a] = cmmmc(v[a],d);
v[b] = cmmmc(v[b],d);
}
}
bool check(){
for(int i=1;i<=m;++i)
if(cmmdc( v[M[i].a] , v[M[i].b] ) != M[i].c)
return false;
return true;
}
void write(){
if(!check()){
g<<-1;
return;
}
for(int i=1;i<=n;++i)
g<<v[i]<<" ";
}
int main()
{
read();
write();
return 0;
}