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
.
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 Covorul:
#include <iostream>
using namespace std;
unsigned long long n,m,nc;
int main(){
cin>>n>>m;
cout<<min(n,m)<<' ';
if(n==m){
cout<<1;
return 0;
}
while(n>1||m>1){
if(n>m){
nc+=n/m;
n-=m*(n/m);
}
else {
nc+=m/n;
m-=n*(m/n);
}
}
cout<<nc;
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 .
Rezolvarea problemei #2771 Covorul
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2771 Covorul 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!