Cod sursa(job #1847760)

Utilizator mariusn01Marius Nicoli mariusn01 Data 15 ianuarie 2017 00:00:30
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>

using namespace std;
int gcd(int a, int b) {
    if (b==0)
        return a;
    else
        return gcd(b, a%b);
}

int g[10010];
int a[100010], b[100010], d[100010];

int n, m;

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

int main () {
    fin>>n>>m;
    for (int i=1;i<=n;i++)
        g[i] = 1;
    for (int i=1;i<=m;i++) {
        fin>>a[i]>>b[i]>>d[i];
        g[a[i]] = g[a[i]] / gcd(g[a[i]], d[i]) * d[i];
        g[b[i]] = g[b[i]] / gcd(g[b[i]], d[i]) * d[i];
    }

    for (int i=1;i<=m;i++)
        if (gcd(g[a[i]], g[b[i]]) != d[i]) {
            fout<<-1;
            return 0;
        }

    for (int i=1;i<=n;i++) {
        fout<<g[i]<<" ";
    }


    return 0;
}