Pagini recente » Cod sursa (job #1606350) | Cod sursa (job #2416430) | Cod sursa (job #2869111) | Cod sursa (job #1626668) | Cod sursa (job #3239594)
#include <fstream>
#define nmax 10001
#define mmax 100001
#define inf 2000000000
using namespace std;
ifstream cin("oz.in");
ofstream cout("oz.out");
int n,m,a,b,d,v[nmax];
struct elem{
int a,b,d;
}x[mmax];
bool ok;
int cmmdc(int a,int b){
int r;
while(b!=0){
r=a%b;
a=b;
b=r;
}
return a;
}
int main()
{
cin>>n>>m;
ok=1;
for(int i=1;i<=n;i++)
v[i]=1;
for(int i=1;i<=m&&ok;i++){
cin>>a>>b>>d;
x[i]={a,b,d};
v[a]=d/cmmdc(v[a],d)*v[a];
v[b]=d/cmmdc(v[b],d)*v[b];
if(v[a]>inf||v[b]>inf)
ok=0;
}
for(int i=1;i<=m&&ok;i++)
if(cmmdc(v[x[i].a],v[x[i].b])!=x[i].d)
ok=0;
if(!ok){
cout<<-1;
return 0;
}
for(int i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}