# PBinfo #3073 – repartitie – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Enunț
Într-o școală sunt n clase a VII-a, fiecare de câte k elevi, și m clase a VIII-a, fiecare de câte p elevi. Directorul școlii vrea să facă o nouă repartizare a elevilor în clase astfel încât în fiecare clasă: a) să fie același număr de elevi; b) să fie doar elevi de clasa a VII-a sau doar elevi de clasa a VIII-a.

Cerința
Cunoscându-se valorile n, k, m și p, numere naturale nenule, scrieți un program pentru a determina x numărul de clase necesar acestei noi repartizări, noul număr y de clase a VII-a, respectiv z de clase a VIII-a, precum și numărul t maxim de elevi repartizați într-o clasă. 

Date de intrare
Programul citește de la tastatură numerele naturale n, k, m și p, separate prin spații.

Date de ieșire
Programul va afișa pe ecran numerele naturale:  x y z t, separate prin câte un spațiu.

Restricții și precizări

n, k, m, p, x, y, z, t ≤ 1.000.000

Exemplu:
Intrare

4 30 5 27
Ieșire

17 8 9 15
Explicație
Pentru n=4, k=30, m=5, p=27, numărul de clase necesar acestei noi repartizări este x=17, dintre care vor fi y=8 clase a VII-a și z=9 clase a VIII-a, iar în fiecare clasă vor fi repartizați maxim t=15 elevi.

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main()
{
    int  n,k,m,p,x,y,z,t,nre7,nre8,a,b;
    cin>>n>>k>>m>>p;
    a=nre7=n*k;
    b=nre8=m*p;
    while(a!=b)
        if(a>b)a=a-b;
        else b=b-a;
    t=a;
    y=nre7/t;
    z=nre8/t;
    x=y+z;
    cout<<x<<" "<<y<<" "<<z<<" "<<t;
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/3073)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/3073/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-3073/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
