Cod sursa(job #1135651)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 8 martie 2014 09:55:09
Problema Oz Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <cstdio>
#include <iostream>

#define NMAX 100007

using namespace std;

int n, m, a[NMAX], b[NMAX], c[NMAX], v[NMAX];

inline int gcd(int a, int b){
    if(! b)
        return a;
    return gcd(b, a % b);
}

inline int cmmmc(int a, int b){
    return a * b / gcd(a, b);
}

int main(){
    freopen("oz.in", "r", stdin);
    freopen("oz.out", "w", stdout);
    scanf("%d %d", &n, &m);
    printf("%d\n", gcd(4, 6));
    for(int i = 1; i <= n; ++i)
        v[i] = 1;
    for(int i = 1; i <= m; ++i){
        scanf("%d %d %d", &a[i], &b[i], &c[i]);
        v[a[i]] = cmmmc(v[a[i]], c[i]);
        v[b[i]] = cmmmc(v[b[i]], c[i]);
    }
    for(int i = 1; i <= m; ++i)
        if(gcd(v[a[i]], v[b[i]]) != c[i]){
            printf("-1\n");
            return 0;
        }
    for(int i = 1; i <= n; ++i)
        printf("%d ", v[i]);
    return 0;
}