fbpx

Problema #2771 – Covorul – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Mama vrea să acopere cu covoare o cameră cu lungimea de n metri și lățimea de m metri. Ea are la dispoziție oricâte covoare în formă de pătrat, de orice dimensiune, număr natural și respectă următoarele reguli:

  • fiecare covor plasat are laturile paralele cu laturile camerei;
  • covoarele așezate nu se suprapun;
  • de fiecare dată se folosește cel mai mare covor care poate fi ales în acel moment;
  • de fiecare dată covorul ales se plasează în așa fel încât zona neacoperită încă să fie un dreptunghi.

Știind dimensiunile camerei să se determine care este dimensiunea maximă a unui covor folosit și numărul total de covoare folosite.

Date de intrare

Programul citește de la tastatură numerele n și m, reprezentând dimensiunile camerei.

Date de ieșire

Programul va afișa pe ecran numerele L și N reprezentând în ordine dimensiunea maximă a unui covor folosit și numărul total de covoare folosite.

Restricții și precizări

  • 1 ≤ n,m ≤ 1000000000
  • dimensiunile covoarelor sunt numere naturale nenule

Exemplul 1

Intrare

10 3

Ieșire

3 6

Explicație

Camera are forma următoare:

Se folosesc 3 covoare de latură 3 și 3 covoare de latură 1. Dimensiunea maximă este 3. O modalitate de așezare a covoarelor este:

Exemplul 2

Intrare

1 100

Ieșire

1 100

Explicație

Se folosesc 100 covoare de latură 1. Dimensiunea maximă este 1.

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int a , b;
    cin >> a >> b;
    cout << min(a , b) << ' ';
    int cnt = 0;
    while(a!=0 && b!=0)
    {
        if(a > b)
        {
            int x = a/b;
            a-=(x*b);
            cnt += x;
        }
        else
        {
            int x = b/a;
            b-=(x*a);
            cnt += x;
        }
    }
    cout << cnt;
    return 0;
}
Comentarii

S-ar putea sa iti placa