Pagini recente » Cod sursa (job #14677) | Cod sursa (job #385994) | Cod sursa (job #1667396) | Cod sursa (job #585542) | Cod sursa (job #3037750)
#include <fstream>
#define nmax 100005
using namespace std;
ifstream in("oz.in");
ofstream out("oz.out");
long long v[nmax];
long long n, m, x, y, d, temp;
bool ok = true;
struct lol
{
long long xx, xy, xd;
};
lol v1[nmax];
long long cmmdc(long long a, long long b)
{
long long r;
while(b!=0)
{
r = a%b;
a = b;
b = r;
}
return a;
}
int main()
{
in>>n>>m;
for(int i=1; i<=n; i++)
v[i] =1;
for(int i=1; i<=m; i++)
{
in>>x>>y>>d;
v1[i].xx = x;
v1[i].xy = y;
v1[i].xd = d;
temp = cmmdc(d,v[x]);
v[x] *= d;
v[x] /= temp;
temp = cmmdc(d,v[y]);
v[y] *= d;
v[y] /=temp;
}
for(int i=1; i<=m; i++)
{
if(cmmdc(v[v1[i].xx],v[v1[i].xy])!= v1[i].xd)
{
ok = false;
break;
}
}
if(ok == true)
{
for(int i=1; i<=n; i++)
{
out<<v[i]<<" ";
}
}
else
out<<"-1\n";
return 0;
}