Cod sursa(job #1971431)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 20 aprilie 2017 13:53:15
Problema Oz Scor 75
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include<fstream>
using namespace std;
ifstream in("oz.in");
ofstream out("oz.out");
int n,k,i,v[10001],a,b,x,r,ok,c,d;
pair<pair<int,int>,int>w[100001];
int main(){
    in >>n >> k;
    for( i = 1; i <= n; i ++ ){
        v[i] = 1;
    }
    for( i = 1; i <=k; i ++ ){
        in >> a >>b>>x;
        c = v[a];
        d = x;
        while( c > 0 ){
            r = d%c;
            d = c;
            c = r;
        }
        v[a] = v[a]/d*x;

        c = v[b];
        d = x;
         while( c > 0 ){
            r = d%c;
            d = c;
            c = r;
        }
        v[b] = v[b]/d*x;

        w[k].first.first = a;
        w[k].first.second =b;
        w[k].second = x;
    }

    for( i = 1; i <=k; i ++ ){
        a = v[w[k].first.first];
        b = v[w[k].first.second];
        while( b > 0 ){
            r = a%b;
            a = b;
            b = r;
        }
        if( a != w[k].second ){
            out<<-1;
            ok =1;
            break;
        }
    }
    if( ok  == 0 ){
         for( i = 1; i <= n; i ++ ){
            out<<v[i]<<" ";
        }
    }

}