Pagini recente » Monitorul de evaluare | Diferente pentru utilizator/andrici_cezar intre reviziile 178 si 88 | Traian_7109 | Profil anakron | Cod sursa (job #2001063)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int n,x[10002],ii,i,m,j,d,ok=1,dd,k,kk,d1;
int cmmdc(int a, int b)
{
int r;
while(b)
{
r=b;
b=a%b;
a=r;
}
return a;
}
int main()
{
ifstream fin ("oz.in");
ofstream fout ("oz.out");
fin>>n>>m;
fill(x+1,x+n+1,1);
for(ii=1;ii<=m;ii++)
{
fin>>i>>j>>d;
d1=d;dd=1;
k=2;
while(d!=1)
{
kk=0;
while(d%k==0){d/=k;kk=1;}
if(kk)dd*=k;
k++;
}
while(x[i]%d1!=0)x[i]*=dd;
while(x[j]%d1!=0)x[j]*=dd;
if(cmmdc(x[i],x[j])!=d1){ok=0;break;}
}
if(ok)for(i=1;i<=n;i++)fout<<x[i]<<" ";
else fout<<"-1";
return 0;
}