Pagini recente » Cod sursa (job #377686) | Cod sursa (job #3282128) | Cod sursa (job #1163091) | Cod sursa (job #1787359) | Cod sursa (job #516070)
Cod sursa(job #516070)
#include <fstream>
using namespace std;
#define dim 10000
long long unsigned v[dim];
int aux[dim*10],aux1[dim*10],aux2[dim*10];
long long euclid(int a,int b)
{
if(b==0)
return a;
else
return euclid(b,a%b);
}
int main()
{
ifstream fin("oz.in");
ofstream fout("oz.out");
int n, m;
fin>> n >>m;
long long unsigned i, j,d,max=2000000000,ok=0;
for(i=1;i<=n;++i)
v[i]=1;
int dap=m;
for( ; m;--m)
{
fin>>i >>j >>d;
aux[m]=i;
aux1[m]=j;
aux2[m]=d;
v[i]=(v[i]*d)/euclid(v[i],d);
v[j]=(v[j]*d)/euclid(v[j],d);
if(v[i]>max || v[j]>max)
{
ok=1;
break;
}
}
if(ok==1)
{fout<<"-1" ;return 0;}
ok=0;
i=1;
while(i<=dap && ok==0)
{
if(euclid(v[aux[i]],v[aux1[i]])!=aux2[i])
{
ok=1;
break;
}
++i;
}
if(ok==1)
fout<<"-1";
else
for(i=1;i<=n;++i)
fout<<v[i] <<" ";
return 0;
}