fbpx

Problema #795 – Inaltimi1 – Rezolvari PBInfo

de Mihai-Alexandru

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ă.

#include <bits/stdc++.h>
using namespace std;
int main()
{
    char c;
    int n , a[1001] , b[1001] , f[1001] , b1 = 0, f1 = 0 , min = 1000 , max = 0 , cf = 0 , cb = 0;
    cin >> n;
    for(int i = 1; i <= n; i++)
    {
      cin >> c >> a[i];
      if(c=='F')
        f[++f1] = a[i];
      else
        b[++b1] = a[i];
    }
    for(int i = 1; i <= f1 ; i++)
        if(f[i] > max)
           max = f[i];
    for(int i = 1; i < b1 ; i++)
        if(b[i] < min)
           min = b[i];
    for(int i = 1; i <= f1; i++)
        if(f[i] < min) cf++;
    for(int i = 1; i <= b1; i++)
        if(b[i] > max) cb++;
    cout<<cf<<" "<<cb;

    return 0;
}
Comentarii

S-ar putea sa iti placa