Cod sursa(job #562346)

Utilizator gabipurcaruGabi Purcaru gabipurcaru Data 22 martie 2011 21:29:07
Problema Oz Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
// infoarena: problema/oz //
#include <fstream>
using namespace std;

ifstream in("oz.in");
ofstream out("oz.out");

const unsigned int MAXN = 10010;
const unsigned int MAXM = 100010;

unsigned int gcd(unsigned int a, unsigned int b)
{
    unsigned int r=1;
    while(r)
    {
        r = a%b;
        a = b;
        b = r;
    }
    return a;
}

unsigned int n,m,i,j,a,b,d,x[MAXN];

int main()
{
    in>>n>>m;
    if(m == 0)
    {
        out<<-1;
        return 0;
    }
    for(i=1; i<=n; i++)
        x[i] = 1;
    for(i=1; i<=m; i++)
    {
        in>>a>>b>>d;
        if(gcd(x[a], x[b]) > d)
        {
            out<<-1<<flush;
            return 0;
        }
        x[a] *= d/gcd(x[a], d);
        x[b] *= d/gcd(x[b], d);
        if(x[a] > 2000000 || x[b] > 2000000)
        {
            out<<-1<<flush;
            return 0;
        }
    }
    for(i=1; i<=n; i++)
        out<<x[i]<<' '<<flush;

    return 0;
}