Pagini recente » Cod sursa (job #322246) | Cod sursa (job #2230047) | Cod sursa (job #991916) | Cod sursa (job #2084233) | Cod sursa (job #469129)
Cod sursa(job #469129)
# include <fstream>
# include <vector>
# include <algorithm>
# define l 2000000000
using namespace std;
struct nod {
int i,j,c;
nod (){}
nod(int I, int J, int C){
i=I;j=J;c=C;}
};
int n, m, v[10003], nn;
vector<nod>V;
int cmmdc (int a, int b)
{
int r;
do{
r=a%b;
a=b;
b=r;
}
while(r);
return a;
}
int verif ()
{
for(vector<nod>::iterator I=V.begin();I<V.end();++I)
if (cmmdc(v[I->i], v[I->j])!=I->c || v[I->i]>l || v[I->j]>l)
return 0;
return 1;
}
int main ()
{
int i, j, c;
ifstream fin ("oz.in");
ofstream fout ("oz.out");
fin>>n>>m;
for(int i=1;i<=n;++i)
v[i]=1;
for(;m--;)
{
fin>>i>>j>>c;
V.push_back(nod(i, j, c));
v[i]=v[i]*c/cmmdc(c, v[i]);
v[j]=v[j]*c/cmmdc(c, v[j]);
}
if(!verif())
fout<<"-1";
else
for(int i=1;i<=n;++i)
fout<<v[i]<<" ";
return 0;
}