Cod sursa(job #2127102)

Utilizator sichetpaulSichet Paul sichetpaul Data 10 februarie 2018 12:23:35
Problema Oz Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>

using namespace std;
long v[10001],ok[10001],x[100001],y[100001],dc[100001];
long cmmdc(long a,long b) {
    long r;
    while (b) {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
int main()
{ int n,i,j,nr,p;long d;
bool stop=0;
    ifstream f("oz.in");
    ofstream g("oz.out");
    f>>n>>nr;
    for (i=1;i<=n;++i)
        v[i]=1;
    for (p=1;p<=nr;++p) {
        f>>i>>j>>d;
        x[p]=i,y[p]=j,dc[p]=d;
        ok[i]=ok[j]=1;
        v[i]=v[i]*(d/cmmdc(v[i],d));
        v[j]=v[j]*(d/cmmdc(v[j],d));
    }
    for (i=1;i<=n;++i)
        if (ok[i]==0) stop=1;
    for (i=1;i<=nr;++i)
        if (cmmdc(v[x[i]],v[y[i]])!=dc[i]) stop=1;

    if (!stop) {
     for (i=1;i<=n;++i)
        g<<v[i]<<" ";
    }
    else g<<"-1";
    return 0;
}