Rezolvare completă PbInfo #3073 repartitie

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.

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema repartitie:

#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;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #3073 repartitie

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3073 repartitie de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!