[ Foro de C++ ]

solucion del programa

29-Sep-2023 22:42
Invitado (Fernando)
0 Respuestas

Hola buen dia!

Estoy corriendo mi programa , pero al parecer no corre en todos las entadas posibles ¿Alguien podria ayudarme?

Comparto la información

Descripción
Estás modernizando la base de datos de tu escuela y deseas recopilar información mientras se procesan las calificaciones de los alumnos. Los alumnos de la escuela tienen números de lista implícitos 1,2,3,…, etc. y el programa que diseñes deberá procesar una secuencia de las siguientes instrucciones:
• REGISTRA c: Registrar que el siguiente alumno de la lista obtuvo calificación c.
• CUENTA c i j: Contar cuántos alumnos con calificación c existen entre los números de lista i y j inclusivo.
Entrada
Un entero N seguido de las N instrucciones a procesar. Puedes suponer que 0?N?105, que todas las calificaciones están entre 0 y 100 y que todos los intervalos de números de lista se referirán a alumnos ya registrados.
Salida
Para cada instrucción de cuenta, el valor correspondiente.

Código:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
   int n;
   std::cin >> n;

   std::vector<int> calificaciones;
   std::vector<int> total_alumnos(101);

   for (int i = 0; i < n; i++) {
       std::string inst;
       std::cin >> inst;

       if (inst == "REGISTRA") {
           int calificacion;
           std::cin >> calificacion;
           calificaciones.push_back(calificacion);
           total_alumnos[calificacion];

       } else if (inst == "CUENTA") {
           int c, i, j;
           std::cin >> c >> i >> j;


           if (i >= 0 && i < calificaciones.size()  && j >= 0 && calificaciones.size() ) {

               int lower = std::lower_bound(calificaciones.begin() + i, calificaciones.begin() + j + 1, c) - calificaciones.end();
               int upper = std::upper_bound(calificaciones.begin() + i, calificaciones.begin() + j + 1, c) - calificaciones.end();

               int contar = upper - lower;

              std::cout << contar << "\n";

           }


       }
   }

   return 0;
}

Esto es en c++

Gracias!




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)