Cod sursa(job #562339)

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

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

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

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

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);
    }
    for(i=1; i<=n; i++)
        out<<x[i]<<' '<<flush;

    return 0;
}