Cod sursa(job #1305133)

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

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

int cmmdc(int a,int b)
{

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

void solve()
{

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

        in>>a>>b>>c;
        if(v[a] == 0)
            v[a] = c;
        else
            v[a] = v[a]*c/cmmdc(v[a],c);
        if(v[b] == 0)
            v[b]= c;
        else
            v[b] = v[b]*c/cmmdc(v[b],c);
    }
    in.close();
    ifstream in2("oz.in");
    in>>n>>m;
    for(int i = 1 ; i <= m && ok; i++){
        in>>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;
    out.close();
}

int main()
{

    solve();
    return 0;
}