import tools.*;
import io.*;

class Impuestos extends Program {
  // Pregunta 1
  int impuestos(Map tramos, Map tasas, int sueldo) {
    // tramos: arreglos asociativo con los sueldos que delimitan los ingresos
    // tasas: arreglo asociativo con el porcentaje de impuesto
    // sueldo: el monto sobre el que hay que calcular el impuesto
    int imp= 0;   // el impuesto calculado
    int i= 1;     // llave para extraer un sueldo en el arreglo tramos
    while (true) {

      // tramos.getInt(i) indica un sueldo a partir del cual se comienza
      // a pagar el porcentaje de impuestos indicado en tasas.getInt(i)
      if (sueldo>tramos.getInt(i)) {

        // el sueldo es superior.  Para calcular el impuesto se considera
        // solo el excedente con respecto a ese tramo.
        imp= imp+(sueldo-tramos.getInt(i))*tasas.getInt(i)/100;

        // Ahora se continua calculando impuestos sobre el dinero
        // que ganar en los tramos inferiores.
        sueldo= tramos.getInt(i);
      }

      // Si este tramo es 0, terminamos
      if (tramos.getInt(i)==0)
        break;
      i= i+1; // pasamos al siguiente tramo
    }
    return imp; // el impuesto a pagar
  }

  // Pregunta 2
  void run() {
    // Lectura del archivo con los tramos y las tasas.
    TextReader lect= new TextReader("impuestos.txt");
    Map tramos= new Map();
    Map tasas= new Map();
    int i= 0;
    while (true) {
      String lin= lect.readLine();
      if (lect.eofReached())
        break;
      i= i+1;
      // el tramo y la tasa esta en lin en el formato "tramo:tasa"
      FieldParser decod= new FieldParser(lin,":");
      // obtenemos el tramo y lo asociamos a la llave i
      tramos.put(i, decod.readInt());
      // obtenemos la tasa y la asociamos a la llave i
      tasas.put(i, decod.readInt());
    }
    // Dialogo con el usuario.
    while (true) {
      print("Sueldo ? ");
      int sueldo= readInt();
      if (sueldo==0)
        break;
      // Hay que usar la funcion impuestos para calcular el valor pedido.
      println("impuestos= "+impuestos(tramos,tasas,sueldo));
    }
    println("Fin");
  }
}
