Cod sursa(job #1813993)

Utilizator Mircea_DonciuDonciu Mircea Mircea_Donciu Data 23 noiembrie 2016 16:12:49
Problema Oz Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>

using namespace std;
long n,i,m,ok,x,y,d,v[10005];
long cmmdc(long a, long b)
{
    long r;
    while(b)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
int main()
{
    ifstream f("oz.in");
    ofstream g("oz.out");
    f>>n;
    for(i=1; i<=n; i++)
    {
        v[i]=1;
    }
    f>>m;
    ok=1;
    for(i=1; i<=m&&ok; i++)
    {
        f>>x>>y>>d;
        if(d%cmmdc(v[x],v[y])==0)
        {
            v[x]/=cmmdc(v[x],d);
            v[x]*=d;
            v[y]/=cmmdc(v[y],d);
            v[y]*=d;
        }
        else ok=0;
    }
    if(ok==0) g<<"-1";
    else
    {
        ifstream fin("oz.in");
        f>>n>>m;
        for(i=1; i<=m&&ok; i++)
        {
            f>>x>>y>>d;
            if(cmmdc(v[x],v[y])!=d) ok=0;
        }
        if(ok)
        for(i=1; i<=n; i++) g<<v[i]<<" ";
        else g<<"-1";
        fin.close();
    }
    g<<'\n';
    f.close(); g.close();
    return 0;
}