Pagini recente » Cod sursa (job #2754770) | Cod sursa (job #2245340) | Cod sursa (job #2221224) | Cod sursa (job #1755797) | Cod sursa (job #2689930)
#include <fstream>
using namespace std;
unsigned long long v1[10005],v[10005];
int h1[100005],h2[100005],h3[100005];
int f[10005];
int main()
{
ifstream cin("oz.in");
ofstream cout("oz.out");
unsigned long long n,m,a,b,c,l1,l2,l3;
cin>>n>>m;
for(int i=1; i<=n; i++)
{
v1[i]=1;
}
for(int i=1; i<=m; i++)
{
cin>>a>>b>>c;
f[a]++;
f[b]++;
h1[i]=a;
h2[i]=b;
h3[i]=c;
if(v[a]==0)
{
v[a]=c;
v1[a]=c;
}
else
{
l1=v[a];
l2=c;
while(l2!=0)
{
l3=l1%l2;
l1=l2;
l2=l3;
}
v[a]=l1;
v1[a]*=c;
}
if(v[b]==0)
{
v[b]=c;
v1[b]=c;
}
else
{
l1=v[b];
l2=c;
while(l2!=0)
{
l3=l1%l2;
l1=l2;
l2=l3;
}
v[b]=l1;
v1[b]*=c;
}
}
for(int i=1;i<=n;i++)
{
if(f[i]>1)
{
v1[i]/=v[i];
}
}
int p=0;
for(int i=1; i<=n; i++)
{
if(v1[i]>2000000000)
{
p=1;
break;
}
}
if(p==0)
{
for(int i=1; i<=m; i++)
{
l1=v1[h1[i]];
l2=v1[h2[i]];
while(l2!=0)
{
l3=l1%l2;
l1=l2;
l2=l3;
}
if(l1!=h3[i])
{
p=1;
break;
}
}
if(p==0)
{
for(int i=1; i<=n; i++)
{
cout<<v1[i]<<" ";
}
cout<<'\n';
}
else
{
cout<<"-1"<<'\n';
}
}
cout<<'\n';
return 0;
}