Cod sursa(job #2753117)

Utilizator Linca_AmaliaLinca Mihaela Amalia Linca_Amalia Data 21 mai 2021 09:34:31
Problema Oz Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <fstream>
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
int n, m, i, x, y, sol, r, v[10002], a[100002], b[100002], D[100002];

int main(){
    fin >> n >> m;
    for ( i = 1; i <= m; i++ )
        fin >> a[i] >> b[i] >> D[i];
    for ( i = 1; i <= n; i++ )
        v[i] = 1;
    for ( i = 1; i <= m; i++ ){

            x = v[a[i]];
            y = D[i];
            while ( y != 0 ){
                r = x % y;
                x = y;
                y = r;
            }
            v[ a[i] ] = v[ a[i] ] / x * D[i];

            x = v[ b[i] ];
            y = D[i];
            while ( y != 0 ){
                r = x % y;
                x = y;
                y = r;
            }
            v[ b[i] ] = v[ b[i] ] / x * D[i];

    }
    for ( i = 1; i <= m; i++ ){
        x = v[ a[i] ];
        y = v[ b[i] ];
        while ( y != 0 ){
            r = x % y;
            x = y;
            y = r;
        }
        if ( x == D[i])
            continue;
        else{
            fout << "-1";
            return 0;
        }

    }
    for ( i = 1; i <= n; i++ )
        fout << v[i] << " ";

}