Pagini recente » Cod sursa (job #1806165) | Cod sursa (job #713234) | Cod sursa (job #1002924) | Cod sursa (job #1098246) | Cod sursa (job #1601401)
#include <fstream>
#define NM 10005
#define VAL 100005
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
struct triplet
{
int a;
int b;
int c;
};
triplet x[VAL];
int N, M, i;
int v[NM], nr;
bool ok;
int cmmdc(long long a, long long b)
{
long long r;
r=a % b;
while (r!=0)
{
a=b;
b=r;
r=a % b;
}
return b;
}
int main()
{
fin >> N >> M;
for (i=1; i<=N; i++)
v[i]=1;
for (i=1; i<=M; i++)
{
fin >> x[i].a >> x[i].b >> x[i].c;
nr=cmmdc(v[x[i].a], x[i].c);
v[x[i].a]*=x[i].c / nr;
nr=cmmdc(v[x[i].b], x[i].c);
v[x[i].b]*=x[i].c / nr;
}
for (i=1; i<=M; i++)
{
if (cmmdc(v[x[i].a], v[x[i].b])!=x[i].c)
{
ok=true;
break;
}
}
if (ok==true)
fout << -1;
else
for (i=1; i<=N; i++)
fout << v[i] << " ";
fin.close();
fout.close();
return 0;
}