Cod sursa(job #2485974)

Utilizator AndreiCroitoruAndrei Croitoru AndreiCroitoru Data 2 noiembrie 2019 10:57:41
Problema Oz Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#define int long long
using namespace std;
ifstream in("oz.in");
ofstream out("oz.out");
int cmmdc(int a,int b) {
    int r,cb=b,ca=a;
    while(b) {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
int cmmmc(int a,int b) {
    int r,cb=b,ca=a;
    while(b) {
        r=a%b;
        a=b;
        b=r;
    }
    return ca*cb/a;
}
struct nugarel {
    int nu,ga,rel;
};
nugarel w[10001];
int v[10001];
int32_t main() {
    int n,m,i,a,b,d;
    in>>n>>m;
    for(i=1; i<=n; i++)
        v[i]=1;
    for(i=1; i<=m; i++) {
        in>>a>>b>>d;
        v[a]=cmmmc(v[a],d);
        v[b]=cmmmc(v[b],d);
        w[i].nu=a;
        w[i].ga=b;
        w[i].rel=d;

    }
    for(i=1; i<=n; i++) {
        if(cmmdc(v[w[i].nu],v[w[i].ga])!=w[i].rel) {
            out<<-1;
        }
    }
    for(i=1; i<=n; i++) {
        out<<v[i]<<' ';
    }
    return 0;
}