Cod sursa(job #1305149)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 29 decembrie 2014 16:15:04
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<fstream>
using namespace std;
const int NMAX = 10000;

long long v[NMAX + 10],n,m;

long long cmmdc(long long a,long long b)
{

    if(!b)
        return a;
    return cmmdc(b,a%b);
}

void solve()
{

    ifstream in("oz.in");
    in>>n>>m;
    long long a,b,c;
    bool ok = true;
    for(int i = 1 ;i <= n ; i++)
        v[i] = 1;
    for(int i = 1 ; i <= m; i++)
    {

        in>>a>>b>>c;
            v[a] = v[a]*c/cmmdc(v[a],c);
            v[b] = v[b]*c/cmmdc(v[b],c);
    }
    in.close();
    ifstream in2("oz.in");
    in2>>n>>m;
    for(int i = 1 ; i <= m && ok; i++){
        in2>>a>>b>>c;
        if(cmmdc(v[a],v[b]) != c)
            ok = false;
    }
    ofstream out("oz.out");
    if(ok)
        for(int i =1 ; i <= n ; i++)
            out<<v[i]<<" ";
    else
        out<<"-1\n";
    out.close();
}

int main()
{

    solve();
    return 0;
}