Cod sursa(job #1777709)

Utilizator giotoPopescu Ioan gioto Data 12 octombrie 2016 20:30:00
Problema Oz Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <cstdio>
using namespace std;

long long i1, i2, d, n, m, a[10005];
inline long long cmmdc(long long x, long long y){
    while(y > 0){
        long long r = x % y;
        x = y; y = r;
    }
    if(x == 0) return 1;
    return x;
}
int main()
{
    freopen("oz.in", "r", stdin);
    freopen("oz.out", "w", stdout);
    scanf("%d%d", &n, &m);

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

    for(int i = 1; i <= m; ++i){
        scanf("%lld%lld%lld", &i1, &i2, &d);
        long long aux = cmmdc(a[i1], a[i2]);
        long long X = d * aux / cmmdc(aux , d);
        a[i1] = a[i1] * X / aux;
        a[i2] = a[i2] * X / aux;
    }
    for(int i = 1; i <= n; ++i)
        printf("%lld ", a[i]);
    return 0;
}