Cod sursa(job #1335952)

Utilizator zombacDica Razvan zombac Data 6 februarie 2015 09:44:28
Problema Oz Scor 75
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
using namespace std;
ifstream fin ("oz.in");
ofstream fout ("oz.out");
struct art { int f, s; long long di; } A[100010];
long long N, M, i, j, d, V[10010];
bool w = 1;

long long cmmdc(long long a, long long b)
{
    while (b)
    {
        long long r = a % b;
        a = b;
        b = r;
    }
    return a;
}

int main()
{
    fin >> N >> M;
    for (int k = 1; k <= N; k++) V[k] = 1;
    for (int k = 1; k <= M; k++)
    {
        fin >> A[k].f >> A[k].s >> A[k].di;
        V[A[k].f] = (V[A[k].f] * A[k].di) / cmmdc(V[A[k].f], A[k].di);
        V[A[k].s] = (V[A[k].s] * A[k].di) / cmmdc(V[A[k].s], A[k].di);
        if (V[A[k].f] > 2000000000 || V[A[k].s] > 2000000000) w = 0;
    }
    //for (int k = 1; k <= M; k++) if (cmmdc(V[A[k].f], V[A[k].s]) != A[k].di) w = 0;
    if (w) for (int k = 1; k <= N; k++) fout << V[k] << ' ';
    else fout << "-1\n";
    fout.close();
    return 0;
}