Cod sursa(job #2108482)

Utilizator AndreiSorin26012001Cirpici Andrei Sorin AndreiSorin26012001 Data 18 ianuarie 2018 14:02:23
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("oz.in");
ofstream out("oz.out");

struct tr
{
    long x, y, k;
}v[100005];

long n, m;
long arr[10005];

long cmmdc( long a, long b )
{
    long r;

    while( b != 0 )
    {
        r = a % b;
        a = b;
        b = r;
    }

    return a;
}

int main() {

    in>>n>>m;

    for( int i = 1; i <= n; i++ )
        arr[i] = 1;

    for( int i = 1; i <= m; i++ )
    {
        in>>v[i].x>>v[i].y>>v[i].k;

        arr[ v[i].x ] *= v[i].k/cmmdc( arr[ v[i].x ] , v[i].k);
        arr[ v[i].y ] *= v[i].k/cmmdc( arr[ v[i].y ] , v[i].k);
    }

    for( int i = 1; i <= m; i++ )
        if( cmmdc( arr[ v[i].x ], arr[ v[i].y ] )!= v[i].k )
        {
            out<<-1;
            return 0;
        }

    for( int i = 1; i <= n; i++ )
        out<<arr[i]<<" ";

    return 0;
}