Cod sursa(job #2489929)

Utilizator RaduNRadu Negovan RaduN Data 9 noiembrie 2019 13:24:14
Problema Oz Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
using namespace std;
ifstream f("oz.in");
ofstream g("oz.out");
struct triplet {
    long long i;
    long long j;
    long long x;
};
triplet read[100001];
long long v[10001];
long long cmmdc(long long a,long long b) {
    long long r;
    while(b) {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
int main() {
    long long n, m, i, a, b, d;
    f>>n>>m;
    for(i=1; i<=n; i++) {
        v[i]=1;
    }
    for(i=1; i<=m; i++) {
        f>>a>>b>>d;
        v[a]=v[a]*d/cmmdc(v[a],d);
        v[b]=v[b]*d/cmmdc(v[b],d);
        read[i].i=a;
        read[i].j=b;
        read[i].x=d;
    }
    for (long long a=1; a<=n; a++) {
        if(v[a]>2000000000 || v[a]<0) {
            g<<-1;
            return 0;
        }
    }
    for (i=1; i<=m; i++) {
        if(cmmdc(v[read[i].i], v[read[i].j])!=read[i].x) {
            g<<-1;
            return 0;
        }
    }
    for (i=1; i<=n; i++) {
        g<<v[i]<<' ';
    }
    return 0;
}