Rezolvare completă PbInfo #795 Inaltimi1

Cerința

Într-o clasă sunt n elevi, numerotați de la 1 la n, băieți și fete, pentru fiecare dintre ei cunoscându-se înălțimea, exprimată în centimetri. Să se determine câte fete sunt mai scunde decât cel mai scund băiat și câți băieți sunt mai înalți decât cea mai înaltă fată.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n caracteristicile celor n elevi, astfel: o literă (B sau F), care definește sexul elevului, și înălțimea acestuia, un număr natural nenul.

Date de ieșire

Programul va afișa pe ecran două numere A B, separate printr-un spațiu, însemnând: A – numărul de fete care sunt mai scunde decât cel mai scund băiat și B – numărul de băieți care sunt mai înalți decât cea mai înaltă fată.

Restricții și precizări

  • 1 ≤ n ≤ 100
  • înălțimile elevilor vor fi mai mici decât 200
  • se garantează că există cel puțin o fată și cel puțin un băiat

Exemplu

Intrare

5
B 176
F 160
F 165
B 180
B 179

Ieșire

2 3

Explicație

Sunt 2 fete, cu înălțimile: 160 165 și 3 băieți, cu înălțimile: 176 180 179. Ambele fete sunt mai scunde decât cel mai scund băiat și toți cei trei băieți sunt mai înalți decât cea mai înaltă fată.

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

#include <iostream>
using namespace std;

int fete[105],baieti[105], nrf = 0, nrb = 0, n;

int main(){
    cin  >> n;
    char s; 
    int H;
    for(int i = 1 ; i <= n ; ++i)
    {
        cin >> s >> H;
        if(s == 'B')
            baieti[++nrb] = H;
        else
            fete[++nrf]   = H;
    }
    int fmax = fete[1], bmin = baieti[1];
    for(int i = 1 ; i <= nrf ; i ++)
        if(fmax < fete[i])
            fmax = fete[i];
    for(int i = 1 ; i <= nrb ; i ++)
        if(bmin > baieti[i])
            bmin = baieti[i];
    int A = 0 , B = 0;
    for(int i = 1 ; i <= nrf ; i ++)
        if(fete[i] < bmin)
            A ++;
    for(int i = 1 ; i <= nrb ; i ++)
        if(baieti[i] > fmax)
            B ++;
    cout << A << " " << B << endl;
    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 #795 Inaltimi1

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