Cod sursa(job #3185587)

Utilizator nicushor21Pirlog Marian Nicolae nicushor21 Data 19 decembrie 2023 18:18:33
Problema Oz Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
struct triplet{
    int i,j,x;
};
int n,m,v[10002],i,j,k,x,a,b,r;
triplet v2[100002];
int main(){
    for(i=0;i<=10001;i++){
        v[i]=1;
    }
    ifstream fin("oz.in");
    ofstream fout("oz.out");
    fin>>n>>m;
    for(k=0;k<m;k++){
        fin>>i>>j>>x;
        v2[k]={i,j,x};
        if(v[i]==0){
            v[i]=x;
        }else{
            a=v[i];
            b=x;
            while(b!=0){
                r=a%b;
                a=b;
                b=r;
            }
            v[i]=v[i]/a*x;
        }
        if(v[j]==0){
            v[j]=x;
        }else{
            a=v[j];
            b=x;
            while(b!=0){
                r=a%b;
                a=b;
                b=r;
            }
            v[j]=v[j]/a*x;
        }
    }
    for(k=0;k<m;k++){
        a=v[v2[k].i];
        b=v[v2[k].j];
        while(b!=0){
            r=a%b;
            a=b;
            b=r;
        }
        if(a!=x){
            fout<<-1;
            return 0;
        }
    }
    for(i=1;i<=n;i++){
        fout<<v[i]<<' ';
    }
    return 0;
}