Pagini recente » Cod sursa (job #1519283) | Cod sursa (job #13385) | Cod sursa (job #1712386) | Cod sursa (job #2489879) | Cod sursa (job #1667447)
#include <fstream>
using namespace std;
int n,m,i,j,a,b,r,d[100001],x[100001],y[100001],v[10001],ap,nr;
ifstream fin ("oz.in");
ofstream fout ("oz.out");
int main (){
fin>>n>>m;
for (i=1;i<=n;i++)
v[i] = 1;
for (i=1;i<=m;i++){
fin>>x[i]>>y[i]>>d[i];
// d - cmmmdc al lui a si b;
// calculam cmmmc al lui v[x[i]] si d[i]
a = v[x[i]];
b = d[i];
while (b!=0){
r = a%b;
a = b;
b = r;
}
v[x[i]] = v[x[i]]*d[i]/a;
a = v[y[i]];
b = d[i];
while (b!=0){
r = a%b;
a = b;
b = r;
}
v[y[i]] = v[y[i]]*d[i]/a;
}
ap = 0;
for (i=1;i<=m;i++){
// calculam din nou cmmmc
a = v[x[i]];
b = v[y[i]];
while (b!=0){
r = a%b;
a = b;
b = r;
}
// nr = v[x[i]]*v[y[i]]/a;
if (a != d[i] || v[x[i]] > 2000000000 || v[y[i]] > 2000000000)
ap++;
}
if (ap == 0)
for (i=1;i<=n;i++)
fout<<v[i]<<" ";
else
fout<<-1;
return 0;
}