Cod sursa(job #2492336)

Utilizator Vlad_AnicaAnica-Popa Vlad-Ioan Vlad_Anica Data 14 noiembrie 2019 16:15:33
Problema Oz Scor 75
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.36 kb
#include <iostream>
#include <fstream>

using namespace std;

int miscari[300000],v[10001];

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

int main()
{

    long long x,y,cmmmc,r,a,b,d1,inm;
    int n,d,i,m,j;
    fin >> n >> m;
    for(i=1;i<=n;i++)
    {
        v[i]=1;
    }
    j=0;
    while(m>0)
    {
        fin >> x >> y >> d;
        miscari[j]=x;
        j++;
        miscari[j]=y;
        j++;
        miscari[j]=d;
        j++;
        a=v[x];
        b=v[y];
        d1=d;
        while(b!=0)
        {
            r=d1%b;
            d1=b;
            b=r;
        }
        cmmmc=v[y]/d1*d;
        if(cmmmc%v[y]==0)
        {
            v[y]=cmmmc;
        }
        else
        {
            v[y]*=cmmmc;
        }
        d1=d;
        while(d1!=0)
        {
            r=a%d1;
            a=d1;
            d1=r;
        }
        cmmmc=v[x]/a*d;
        if(cmmmc%v[x]==0)
        {
            v[x]=cmmmc;
        }
        else
        {
            v[x]*=cmmmc;
        }


        m--;
    }
    i=1;
    while(i<j && a==miscari[i+2])
    {
      a=v[miscari[i]];
      b=v[miscari[i+1]];
      while(b!=0)
      {
          r=a%b;
          a=b;
          b=r;
      }
      i+=3;
    }
    for(i=1;i<=n;i++)
    {
        fout << v[i] << " ";
    }


    return 0;
}