Pagini recente » Cod sursa (job #1804917) | Cod sursa (job #2724576) | Cod sursa (job #1051506) | Cod sursa (job #3206997) | Cod sursa (job #469959)
Cod sursa(job #469959)
#include<fstream>
using namespace std;
long long v[10003],n,m;
int cmmdc(int a,int b);
int verif();
struct triplet{
int a;
int b;
int d;};
triplet nr[100010];
long long cmmmc(int a,int b);
int main()
{
ifstream fin("oz.in");
ofstream fout("oz.out");
fin>>n;
fin>>m;
int i;
for(i=1;i<=n;i++)
v[i]=1;
for(i=1;i<=m;i++)
{
fin>>nr[i].a>>nr[i].b>>nr[i].d;
v[nr[i].a]=cmmmc(v[nr[i].a],nr[i].d);
v[nr[i].b]=cmmmc(v[nr[i].b],nr[i].d);
}
if(verif()==0)
fout<<"-1";
else
{
for(i=1;i<=n;i++)
fout<<v[i]<<" ";
fout<<"\n";
}
return 0;
}
int cmmdc(int a,int b)
{
int rest;
while(a%b)
{
rest=a%b;
a=b;
b=rest;
}
return b;
}
int verif()
{
int i;
for(i=1;i<=m;i++)
if(cmmdc(v[nr[i].a],v[nr[i].b])!=nr[i].d)
return 0;
return 1;
}
long long cmmmc(int a,int b)
{
long long s=a*b/cmmdc(a,b);
return s;
}