// Programación en C++ para Ingenieros, Ed. Thomson Paraninfo, 2006
// Capítulo 4: Esquemas Algorítmicos Básicos

// Programa que dadas las horas de entrada y salida de los
// trabajadores (expresadas en minutos absolutos),
// calcula el porcentaje de trabajadores que hacen un mínimo de 480 minutos
// y la cantidad de minutos extras que se hacen

#include <iostream>

using namespace std;

// Definición de constantes
const int MIN = 480;

// Programa principal
int main()
{
  // Declaración de variables
  int cumplen = 0,     // Trabajadores que hacen 480 mínutos como mínimo
      total   = 0,     // Número total de trabajadores
      extras  = 0,     // Minutos extras
      entrada, salida, // Minutos de entrada y minutos de salida
      aux;             // Variable auxiliar

  // Se aplicará el esquema de recorrido:

  cout << "Entra los pares de los minutos de llegada y salida de cada empleado ";
  cout << "acabados con el centinela 0 0:" << endl;

  // Obtención del primer par
  cin >> entrada >> salida;

  while ( !((entrada == 0) && (salida == 0)) ) // No último elemento
  {
    // Tratar elemento
    aux = salida - entrada;
    if ( aux >= MIN )
    {
      extras += (aux - MIN);
      cumplen++;
    }
    total++;

    // Obtener siguiente par
    cin >> entrada >> salida;
  }

  // Salida de los resultados
  cout << "El " << ((double)cumplen)/((double)(total))*100.0;
  cout << "% cumple." << endl;
  cout << "Se han hecho " << extras << " minutos extras." << endl;

  return 0;
}