Mai intai trebuie sa te autentifici.

Cod sursa(job #3154038)

Utilizator SSKMFSS KMF SSKMF Data 2 octombrie 2023 20:21:14
Problema Oz Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.31 kb
#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;
}