Pagini recente » Cod sursa (job #1011342) | Cod sursa (job #761117) | Cod sursa (job #550527) | Cod sursa (job #2243249) | Cod sursa (job #2633471)
#include <iostream>
#include<fstream>
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
#define NMAX 100005
int ma[NMAX][3];
int n,m;
int v[NMAX];
int cmmdc(int a,int b)
{
while(b)
{
int r = a%b;
a = b;
b = r;
}
return a;
}
int cmmmc(int a,int b)
{
return (a*b)/cmmdc(a,b);
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
v[i] = 1;
for(int i=1;i<=m;i++)
{
fin>>ma[i][0]>>ma[i][1]>>ma[i][2];
int nr1 = v[ma[i][0]];
int nr2 = v[ma[i][1]];
int val = ma[i][2];
//cout<<ma[i][0]<<" "<<ma[i][1]<<" "<<val<<endl;
if(nr1 % val != 0)
{
int nou = cmmmc(nr1,val);
v[ma[i][0]] = nou;
}
if(nr2 % val != 0)
{
int nou = cmmmc(nr2,val);
v[ma[i][1]] = nou;
}
}
int ok = 1;
for(int i=1;i<=m;i++)
{
if(cmmdc(v[ma[i][0]],v[ma[i][1]]) != ma[i][2])
ok = 0;
}
if(ok)
{
for(int i=1;i<=n;i++)
fout<<v[i]<<" ";
}
else
{
fout<<-1;
}
return 0;
}