Cod sursa(job #1156653)

Utilizator sebinechitasebi nechita sebinechita Data 27 martie 2014 20:28:18
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
#define MAX 10100

typedef long long ll;

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

ll cmmmc(ll a, ll b)
{
    return 1LL*a*b/cmmdc(a, b);
}

ll a[MAX], x[10*MAX], y[10*MAX], d[10*MAX];

int main()
{
    int n, m, i;
    fin>>n>>m;
    for(i=1;i<=n;i++)
    {
        a[i]=1;
    }

    for(i=1;i<=m;i++)
    {
        fin>>x[i]>>y[i]>>d[i];

        a[x[i]]=cmmmc(a[x[i]], d[i]);
        a[y[i]]=cmmmc(a[y[i]], d[i]);
    }
    int dd=1;
    for(i=1;i<=m;i++)
    {
        if(cmmdc(a[x[i]], a[y[i]])!=d[i])
            dd=0;
    }
    for(i=1;i<=n;i++)
    {
        if(a[i]>2000000000)
            dd=0;
    }
    if(!dd)
        fout<<-1;
    else
    {
        for(i=1;i<=n;i++)
        {
            fout<<a[i]<<" ";
        }

    }
    fout<<"\n";
}