Cod sursa(job #1841085)

Utilizator razvandraghiciDraghici Razvan razvandraghici Data 5 ianuarie 2017 12:04:07
Problema Oz Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 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(v[a]!=0 && v[b]!=0 && (d!=cmmdc(v[a], v[b]) && cmmdc(v[a], v[b])!=1)){
                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;
}