Cod sursa(job #1429832)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 7 mai 2015 12:07:47
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<fstream>
using namespace std;
long long n, m, i, x;
long long v[10002];
struct triplet{
    int a;
    int b;
    int r;
};
triplet w[100002];
long long cmmdc(long long a, long long b){
    long long r;
    while(b != 0){
        r = a % b;
        a = b;
        b = r;
    }
    return a;
}
ifstream fin("oz.in");
ofstream fout("oz.out");
int main(){
    fin>> n >> m;
    for(i = 1; i <= n; i++){
        v[i] = 1;
    }
    for(i = 1; i <= m; i++){
        fin>> w[i].a >> w[i].b >> w[i].r;
        x = cmmdc(v[w[i].a], w[i].r);
        v[w[i].a] = v[w[i].a] * w[i].r / x;
        x = cmmdc(v[w[i].b], w[i].r);
        v[w[i].b] = v[w[i].b] * w[i].r / x;
    }
    for(i = 1; i <= m; i++){
        x = cmmdc(v[w[i].a], v[w[i].b]);
        if(x != w[i].r){
            fout<<"-1\n";
            return 0;
        }
    }
    for(i = 1; i <= n; i++){
        fout<< v[i] <<" ";
    }
    return 0;
}