Pagini recente » Cod sursa (job #212909) | Cod sursa (job #95631) | Cod sursa (job #2960150) | Cod sursa (job #2849444) | Cod sursa (job #3154038)
#include <fstream>
using namespace std;
ifstream cin ("oz.in");
ofstream cout ("oz.out");
long long Cmmdc (long long valoare_1 , long long valoare_2)
{
return valoare_2 ? Cmmdc(valoare_2 , valoare_1 % valoare_2) : valoare_1;
}
int main ()
{
int lungime , numar_triplete;
cin >> lungime >> numar_triplete;
int sir[10001];
for (int indice = 1 ; indice <= lungime ; indice++)
sir[indice] = 1;
struct { int indice_1 , indice_2 , cmmdc; } triplete[100001];
for (int indice = 1 ; indice <= numar_triplete ; indice++)
{
cin >> triplete[indice].indice_1 >> triplete[indice].indice_2 >> triplete[indice].cmmdc;
sir[triplete[indice].indice_1] *= triplete[indice].cmmdc / Cmmdc(triplete[indice].cmmdc , sir[triplete[indice].indice_1]);
sir[triplete[indice].indice_2] *= triplete[indice].cmmdc / Cmmdc(triplete[indice].cmmdc , sir[triplete[indice].indice_2]);
}
for (int indice = 1 ; indice <= numar_triplete ; indice++)
if (Cmmdc(sir[triplete[indice].indice_1] , sir[triplete[indice].indice_2]) != triplete[indice].cmmdc)
{ cout << "-1"; cout.close(); cin.close(); return 0; }
for (int indice = 1 ; indice <= lungime ; indice++)
cout << sir[indice] << ' ';
cout.close(); cin.close();
return 0;
}