Cod sursa(job #1968203)

Utilizator robx12lnLinca Robert robx12ln Data 17 aprilie 2017 15:43:36
Problema Oz Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<fstream>
#define DIM 10005
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
int v[DIM], n, m;
struct query{
    int a;
    int b;
    int d;
} q[DIM * 10];
int cmmdc( int x, int y ){
    int r;
    while( y != 0 ){
        r = x % y;
        x = y;
        y = r;
    }
    return x;
}
int main(){
    fin >> n >> m;
    fill( v + 1, v + n + 1, 1 );
    for( int i = 1; i <= m; i++ ){
        fin >> q[i].a >> q[i].b >> q[i].d;
        v[ q[i].a ] = v[ q[i].a ] * q[i].d / cmmdc( v[ q[i].a ], q[i].d );
        v[ q[i].b ] = v[ q[i].b ] * q[i].d / cmmdc( v[ q[i].b ], q[i].d );
    }
    for( int i = 1; i <= m; i++ ){
        if( cmmdc( v[ q[i].a ], v[ q[i].b ] ) != q[i].d ){
            fout << "-1\n";
            return 0;
        }
    }
    for( int i = 1; i <= n; i++ ){
        fout << v[i] << " ";
    }
    return 0;
}