Cod sursa(job #2127055)

Utilizator sichetpaulSichet Paul sichetpaul Data 10 februarie 2018 11:56:04
Problema Oz Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>

using namespace std;
int v[10001],ok[10001],x[100001],y[100001],dc[100001];
int cmmmc(int x,int y) {
   int r,cmmdc,a,b;
   a=x,b=y;
   while (b) {
      r=a%b;
      a=b;
      b=r;
   }
   cmmdc=a;
   return((x*y)/cmmdc);
}
int cmmdc(int a,int b) {
    int r;
    while (b) {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
int main()
{ int n,i,j,nr,p,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]=cmmmc(v[i],d);
        v[j]=cmmmc(v[j],d);
    }
    for (i=1;i<=n;++i)
        if (ok[i]==0) stop=1;
    for (i=1;i<=nr;++i)
        if (cmmdc(x[i],y[i])!=dc[i]) stop=1;

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