@Override
    public void start(BufferedReader jin, PrintStream jout) throws IOException {
        // TODO: Validar entrada
        int count = 0, degree;
        double[] coefficient, temp;
        double xLow, xHigh, mark, prev, prevHigh, prevLow;
        int inc, cMarks;
        double volume, tempVol;
        String line, sep;

        do {
            line = jin.readLine();
            if (line != null && !line.isEmpty()) {
                degree = Integer.parseInt(line);
                coefficient = fromStrArraytoDblArray(jin.readLine().split(" "));
                temp = fromStrArraytoDblArray(jin.readLine().split(" "));
                xLow = temp[0];
                xHigh = temp[1];
                inc = (int) temp[2];

                // Volumen total de la botellita
                volume = calcVolume(coefficient, degree, xLow, xHigh);
                count++;
                jout.printf("Caso %d: %.2f\n", count, volume);
                if (volume < inc) {
                    jout.println("volumen insuficiente");
                } else {
                    // buscamos las marcas usando busqueda binaria
                    prev = .0;
                    mark = xHigh / 2.;
                    prevHigh = xHigh;
                    prevLow = .0;
                    sep = "";
                    cMarks = 0;
                    do {
                        tempVol = calcVolume(coefficient, degree, prev, mark);
                        if (((int)(tempVol * 100.)) == inc * 100) {
                            jout.printf("%s%.2f", sep, mark);
                            sep = " ";
                            prev = mark;
                            prevLow = mark;
                            prevHigh = xHigh;
                            mark = (xHigh + prev) / 2.;
                            cMarks++;
                        } else if (((int)(tempVol * 100.)) < inc * 100) {
                            prevLow = mark;
                            mark = (prevHigh + mark) / 2.;
                        } else {
                            prevHigh = mark;
                            mark = (mark + prevLow) / 2.;
                        }
                    } while (volume - (cMarks * inc) > inc && cMarks < 8);
                    jout.println();
                    // IGNORAR: "Workaround" para evitar el bug 
                    //          'unused assigned value' de netbeans 7.3+
                    Logger.getLogger(Intermedio02.class.getName())
                            .log(Level.INFO, "{0}{1}{2}{3}", new Object[]
                            {mark, prevHigh, prevLow, sep});
                    // IGNORAR: no tiene efecto en el programa.
                }
            }
        } while (line != null && !line.isEmpty());
    }