Cod sursa(job #2108381)

Utilizator mirceaisherebina mircea mirceaishere Data 18 ianuarie 2018 09:58:12
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");

long n, m, i, j, v[10002], s, x, y, d, c[100002];
int  a[100002], b[100002];
long cmmdc (long a, long b){
    long r;
    while(b){
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}

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

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