Cod sursa(job #1218487)

Utilizator mihaimusatMihai Musat mihaimusat Data 11 august 2014 14:15:12
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#define NR 100005

using namespace std;

int n,m,i,A[NR],B[NR],a,b;
long long V[NR],D[NR],d;

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

long long cmmdc(long long x, long long y) {
    long long r;
    while(y) {
        r=x%y;
        x=y;
        y=r;
    }
    return x;
}

long long cmmmc(long long x, long long y) {
    long long p=x*y;
    p=p/cmmdc(x,y);
    return p;
}

int main() {

    f>>n>>m;
    for(i=1;i<=n;i++)
        V[i]=1;
    for(i=1;i<=m;i++) {
        f>>a>>b>>d;
        A[i]=a;
        B[i]=b;
        D[i]=d;
        V[a] = cmmmc(V[a],d);
        V[b] = cmmmc(V[b],d);
    }
    bool ok=1;
    for(i=1;i<=m && ok;i++)
        if(cmmdc(V[A[i]],V[B[i]]) != D[i])
            ok=0;
    if(ok)
        for(i=1;i<=n;i++)
            g<<V[i]<<" ";
    else
        g<<"-1\n";
    return 0;
}