Rezolvare completă PbInfo #2014 Canguri

La proba de atletism s-au calificat trei canguri care trebuie să efectueze sărituri pe o pistă de 800 metri.
Fiecare cangur se aliniază la linia de start, îşi lipeşte pe marsupiu eticheta cu numărul său de concurs iar apoi când se dă stratul efectuează săritură după săritură până trece linia de sosire.

Cunoscând lungimea săriturii fiecărui cangur (exprimată în metri) şi faptul că nu există doi canguri cu sărituri de aceeaşi lungime, scrieți un program care să determine:

Cerința

a) Numărul de concurs al cangurului care ajunge primul la linia de sosire;
b) Numărul săriturilor efectuate de cangurul care a trecut primul linia de sosire.

Date de intrare

Din fişierul de intrare canguri.in se citesc:

- de pe primele trei linii, câte două numere naturale despărțite prin câte un spațiu, ce reprezintă numărul de concurs respectiv lungimea săriturii fiecărui cangur.

Date de ieșire

În fişierul canguri.out se va scrie:

- pe prima linie, numărul de concurs al cangurului care trece primul linia de sosire;
- pe cea de-a doua linie, un număr natural ce reprezintă numărul săriturilor efectuate de cangurul care a trecut primul linia de sosire.

Restricții și precizări

  • Numerele scrise pe etichetele de concurs sunt numere naturale cu maximum trei cifre
  • pentru determinarea corectă a numărului de concurs se acordă 60% din punctaj; pentru determinarea corectă a numărului de sărituri se acordă 40% din punctaj

Exemplu

canguri.in

769 2
354 6
129 4 

canguri.out

354
134

Explicație

Primul cangur are numărul de concurs 769 şi lungimea săriturii egală cu 2 metri.
Cel de-al doilea cangur are numărul de concurs 354 şi lungimea săriturii de 6 metri.
Cel de-al treilea cangur are numărul de concurs 129 și lungimea săriturii de 4 metri.
Primul va trece linia de sosire cangurul cu numărul de concurs 354.
El va efectua 134 de sărituri pentru a trece linia de sosire.

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 Canguri:

#include <iostream>
#include <fstream>

using namespace std;

fstream fin("canguri.in", ios::in), fout("canguri.out", ios::out);

int main()
{
    int nr1 , nr2 , nr3 , pas1 , pas2 , pas3;
    fin >> nr1 >> pas1;
    fin >> nr2 >> pas2;
    fin >> nr3 >> pas3;
    int pasmax = pas1, nrmax = nr1;
    if(pas2 > pasmax)
        pasmax = pas2, nrmax = nr2;
    if(pas3 > pasmax)
        pasmax = pas3, nrmax = nr3;
    fout << nrmax << "
";
    if(800 % pasmax == 0)
        fout << 800 / pasmax;
    else
        fout << 800 /pasmax + 1;
    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 #2014 Canguri

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2014 Canguri 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!