Advertisement
andresouzaabreu

resolution of problem 19 from neps academy

Apr 6th, 2020
330
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.13 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <cstring>
  4. using namespace std;
  5. /*
  6. @description
  7.     A divisão de Suprimentos de Botas e Calçados do Exército comprou um grande número de pares de botas de vários tamanhos para seus soldados. No entanto, por uma falha de empacotamento da fábrica contratada, nem todas as caixas entregues continham um par de botas correto, com duas botas do mesmo tamanho, uma para cada pé. O sargento mandou que os recrutas retirassem todas as botas de todas as caixas para reembalá-las, desta vez corretamente.
  8.  
  9.     Quando o sargento descobriu que você sabia programar, ele solicitou com a gentileza habitual que você escrevesse um programa que, dada a lista contendo a descrição de cada bota entregue, determina quantos pares corretos de botas poderão ser formados no total.
  10.  
  11. @input
  12.     A primeira linha da entrada contém um inteiro NNN indicando o número de botas individuais entregues. Cada uma das N linhas seguintes descreve uma bota, contendo um número inteiro M e uma letra L, separados por um espaço em branco. M indica o número do tamanho da bota e L indica o pé da bota: L = ‘D’ indica que a bota é para o pé direito, L = ‘E’ indica que a bota é para o pé esquerdo.
  13.  
  14. @output
  15.     Seu programa deve imprimir uma única linha contendo um único número inteiro indicando o número total de pares corretos de botas que podem ser formados.
  16.  
  17. @constraints
  18.     2≤N≤10⁴
  19.     N é par
  20.     30≤M≤60
  21.     L é o caractere ‘D’ ou o caractere ‘E’
  22. */
  23.  
  24. int main()
  25. {
  26.     int right_shoes[61], left_shoes[61], shoes = 0;
  27.     memset(right_shoes, 0, sizeof(right_shoes));
  28.     memset(left_shoes, 0, sizeof(left_shoes));
  29.  
  30.     int N;
  31.     cin >> N;
  32.  
  33.     for (int i = 0; i < N; i++) {
  34.         int size;
  35.         char side;
  36.  
  37.         cin >> size >> side;
  38.  
  39.         if (side == 'D') {
  40.             right_shoes[size]++;
  41.         } else {
  42.             left_shoes[size]++;
  43.         }
  44.     }
  45.  
  46.     for (int i = 30; i <= 60; i++) {
  47.         if (right_shoes[i] != 0 && left_shoes[i] != 0) {
  48.             shoes += max(right_shoes[i], left_shoes[i]);
  49.         }
  50.     }
  51.  
  52.     cout << shoes;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement