Pagini recente » Istoria paginii utilizator/alexffggfgggff | Diferente pentru utilizator/dornescuvlad intre reviziile 38 si 102 | Clasament dupa rating | Cod sursa (job #295506) | Cod sursa (job #166892)
Cod sursa(job #166892)
#include<iostream.h>
unsigned long cmmdc(unsigned long n, unsigned long m)
{unsigned long r;
do
{r=n%m;
n=m;
m=r;
}
while(r);
return n;
}
int verif(unsigned long a[], unsigned long i[], unsigned long j[], unsigned long d[], unsigned long m)
{for(int k=1;k<=m;k++)
if(cmmdc(a[i[k]],a[j[k]])!=d[k])
return 0;
return 1;
}
int main()
{unsigned long n, m, a[10010], i[100010], j[100010], d[100010];
cin>>n>>m;
for(int k=1;k<=n;k++)
a[k]=1;
for(k=1;k<=m;k++)
{cin>>i[k]>>j[k]>>d[k];
a[i[k]]=a[i[k]]*(d[k]/cmmdc(a[i[k]],d[k]));
a[j[k]]=a[j[k]]*(d[k]/cmmdc(a[j[k]],d[k]));
}
int ok=1;
for(k=1;k<=m && ok;k++)
if(cmmdc(a[i[k]],a[j[k]])!=d[k])
ok=0;
if(ok)
{for(k=1;k<=n;k++)
cout<<a[k]<<" ";
cout<<endl;
}
else
cout<<"-1\n";
return 0;
}