Pagini recente » Cod sursa (job #427167) | Cod sursa (job #3153256) | Cod sursa (job #2518834) | Cod sursa (job #2834213) | Cod sursa (job #2924109)
#include <fstream>
using namespace std;
#define Nmax 10000
#define Mmax 100000
struct Triplet
{
int poz1;
int poz2;
int d;
};
int v[Nmax];
Triplet p[Mmax];
int cmmdc(int a, int b)
{
int r;
while(b != 0)
{
r = a % b;
a = b;
b = r;
}
return a;
}
int cmmmc(int a, int b)
{
long long p;
p = a * b;
return p / cmmdc(a, b);
}
int main()
{
ifstream fin("oz.in");
ofstream fout("oz.out");
int n, m, i, poz1, poz2, d, ok;
fin >> n >> m;
for(i = 1; i <= n; i++)
{
v[i] = 1;
}
for(i = 1; i <= m; i++)
{
fin >> poz1 >> poz2 >> d;
p[i].poz1 = poz1;
p[i].poz2 = poz2;
p[i].d = d;
v[poz1] = cmmmc(v[poz1], d);
v[poz2] = cmmmc(v[poz2], d);
}
ok = 1;
for(i = 1; i <= m; i++)
{
if(cmmdc(v[p[i].poz1], v[p[i].poz2]) != p[i].d)
{
ok = 0;
break;
}
}
if(ok == 0)
{
fout << -1;
}
else
{
for(i = 1; i <= n; i++)
{
fout << v[i] << " ";
}
}
return 0;
}