Cod sursa(job #1744926)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 20 august 2016 18:51:17
Problema Oz Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <cstring>

using namespace std;

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

const int MAXN = 10010;
const int MAXM = 100010;

int v[MAXN];
pair<pair<int, int>, int> q[MAXM];

int Gcd(int a, int b) {
    int r;
    while (b) {
        r = a % b;
        a = b;
        b = r;
    }
    return a;
}

int main() {
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
        v[i] = 1;
    for (int i = 1; i <= m; i++) {
        int x, y, d;
        cin >> x >> y >> d;
        v[x] = v[x] * d / Gcd(v[x], d);
        v[y] = v[y] * d / Gcd(v[y], d);
        q[i].first = make_pair(x, y);
        q[i].second = d;
    }
    for (int i = 1; i <= m; i++)
        if (Gcd(v[q[i].first.first],v[q[i].first.second]) != q[i].second) {
            cout << "-1";
            return 0;
        }
    for (int i = 1; i <= n; i++)
        cout << v[i] << " ";
    return 0;
}