Cod sursa(job #1846027)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 12 ianuarie 2017 01:27:36
Problema Oz Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#include <vector>
#define nmax 100050
#define miliard 2000000000
using namespace std;
ifstream f("oz.in");
ofstream g("oz.out");
int n,m,ok=1,x[nmax],y[nmax],z[nmax];
long long v[nmax];

int cmmdc(int x,int y)
{
    if (y==0)
        return x;
    return cmmdc(y,x%y);
}

int main()
{
    int i,j,t;
    f>>n>>m;
    for (i=1;i<=m;i++) {
        f>>x[i]>>y[i]>>z[i];
        if (v[x[i]]==0)
            v[x[i]]=z[i];
        else {
            t=cmmdc(v[x[i]],z[i]);
            v[x[i]]*=z[i]/t;
        }
        if (v[y[i]]==0)
            v[y[i]]=z[i];
        else {
            t=cmmdc(v[y[i]],z[i]);
            v[y[i]]*=z[i]/t;
        }
    }
    for (i=1;i<=n;i++) {
        if (v[i]==0)
            v[i]=1;
        if (v[i]>miliard)
            ok=0;
    }
    for (i=1;i<=m;i++)
        if (cmmdc(v[x[i]],v[y[i]])!=z[i])
            ok=0;
    if (ok==1)
        for (i=1;i<=n;i++)
            g<<v[i];
    else
        g<<-1;
    return 0;
}