Cod sursa(job #1840747)

Utilizator razvandraghiciDraghici Razvan razvandraghici Data 4 ianuarie 2017 19:53:46
Problema Oz Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <fstream>

using namespace std;

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

long long a, b, i, v[10003], d, n, m;

int cmmdc(int a, int b){
    int r;
    while(b!=0){
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}

int main()
{
    fin>>n>>m;
    for(i=1;i<=m;i++){
        fin>>a>>b>>d;
        if(cmmdc(v[a], v[b])>d && v[a]!=0 && v[b]!=0){
                fout<<-1;
                return 0;
        }
        if(v[a]==0)
            v[a]=d;
        else{
            v[a]=v[a]*(d/cmmdc(v[a], d));
            if(v[a]>2000000000){
                fout<<-1;
                return 0;
            }
        }
        if(v[b]==0)
            v[b]=d;
        else{
            v[b]=v[b]*(d/cmmdc(v[b], d));
            if(v[b]>2000000000){
                fout<<-1;
                return 0;
            }
        }
        if(cmmdc(v[a], v[b])>d && v[a]!=0 && v[b]!=0){
                fout<<-1;
                return 0;
        }

    }

    for(i=1;i<=n;i++){
        if(v[i]==0)
            v[i]=1;
        fout<<v[i]<<" ";
    }
    return 0;
}