Cod sursa(job #1841069)

Utilizator razvandraghiciDraghici Razvan razvandraghici Data 5 ianuarie 2017 11:48:27
Problema Oz Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 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) || (v[a]!=0 && v[b]!=0 && d%cmmdc(v[a], 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;
            }
        }

    }

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