Pagini recente » Cod sursa (job #2288414) | Cod sursa (job #376849) | Cod sursa (job #1964218) | Cod sursa (job #3196278) | Cod sursa (job #2633479)
#include <iostream>
#include<fstream>
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
#define NMAX 100005
typedef long long ll;
ll ma[NMAX][3];
ll n,m;
ll v[NMAX];
ll cmmdc(ll a, ll b)
{
ll r;
while (b != 0)
{
r = a % b;
a = b;
b = r;
}
return a;
}
ll cmmmc(ll a, ll b) {
ll r;
r = a * b / cmmdc(a, b);
return r;
}
int main()
{
fin>>n>>m;
for(ll i=1;i<=n;i++)
v[i] = 1;
for(ll i=1;i<=m;i++)
{
ll a,b,c;
fin>>a>>b>>c;
v[a] = cmmmc(v[a],c);
v[b] = cmmmc(v[b],c);
ma[i][0] = a;
ma[i][1] = b;
ma[i][2] = c;
}
int ok = 1;
for(ll i=1;i<=m;i++)
{
ll a,b,c;
a = ma[i][0];
b = ma[i][1];
c = ma[i][2];
if(cmmdc(v[a],v[b]) != c)
ok = 0;
}
for(int i=1;i<=n;i++)
{
if(v[i] > 2e9)
ok = 0;
}
if(ok)
{
for(int i=1;i<=n;i++)
fout<<v[i]<<" ";
}
else
{
fout<<-1;
}
return 0;
}