Cod sursa(job #2950053)

Utilizator NToniBoSSNicolae Tonitza NToniBoSS Data 2 decembrie 2022 18:09:21
Problema Oz Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>
#define LIM 1<<17
/// TONI BO$$ was here
/// #MLC

using namespace std;

struct{
    int i, j, x;
}q[100001];

int v[10001];

int main()
{
    int n, m, i, a, b, c;
    freopen("oz.in","r",stdin);
    freopen("oz.out","w",stdout);
    scanf("%d%d", &n, &m);
    for(i = 1; i <= n; i++)
        v[i] = 1;
    bool flag = true;
    for(i = 1; i <= m; i++){
        scanf("%d%d%d", &q[i].i, &q[i].j, &q[i].x);
        a = q[i].i;
        b = q[i].j;
        c = __gcd(v[a], v[b]);
        if(q[i].x % c != 0) flag = false;
        else{
            v[a] *= (q[i].x / c);
            v[b] *= (q[i].x / c);
        }
    }
    for(i = 1; i <= m; i++)
        if(__gcd(v[q[i].i], v[q[i].j]) != q[i].x)
            flag = false;
    if(!flag){
        printf("-1");
        return 0;
    }
    for(i = 1; i <= n; i++)
        printf("%d ", v[i]);

    return 0;
}