Pagini recente » Cod sursa (job #2887103) | Cod sursa (job #2553832) | Cod sursa (job #2528765) | Cod sursa (job #2915647) | Cod sursa (job #2182650)
#include <fstream>
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
struct str{
int poz1, poz2, nrk;
}chn[100000];
int sav, nrnr, rest;
int vec[10000];
int func(int nr1, int nr2){
while(nr2){
rest = nr1 % nr2;
nr1 = nr2;
nr2 = rest;
}
return nr1;
}
bool flag2 = true;
int main()
{
fin >> sav >> nrnr;
for(int index = 0; index < sav; index++){
vec[index] = 1;
}
for(int index = 0; index < nrnr; index++){
fin >> chn[index].poz1 >> chn[index].poz2 >> chn[index].nrk;
chn[index].poz1--;
chn[index].poz2--;
vec[chn[index].poz1] *= chn[index].nrk / func(chn[index].nrk, vec[chn[index].poz1]);
vec[chn[index].poz2] *= chn[index].nrk / func(chn[index].nrk, vec[chn[index].poz2]);
}
for(int index = 0; index < nrnr; index++){
if(func(vec[chn[index].poz1], vec[chn[index].poz2]) != chn[index].nrk){
flag2 = false;
fout << "-1";
break;
}
}
if(flag2){
for(int index = 0; index < sav; index++){
fout << vec[index] << " ";
}
}
return 0;
}