Carrera de sacos en downtown P25067


Statement
 

pdf   zip

La calle mayor de tu pueblo tiene mucha pendiente, lo que hace que sea un lugar propicio para celebrar... ¡carreras de sacos! En una ya antigua y respetada tradición, la gente se reúne cerca de la calle mayor para disfrutar de la carrera (y con el botiquín de emergencia a punto para atender a los posibles heridos).

La carrera siempre empieza en la calle mayor (no necesariamente al principio de la misma) y trascurre en su totalidad por dicha calle. La calle mayor se divide en NN trozos (manzanas). La carrera no puede empezar ni acabar en la mitad de un trozo. La Federación de Carreras de Sacos Pendiente Abajo no permite que la carrera dure más de LL metros.

Conociendo la longitud y el número de público asistente a cada uno de los NN trozos, encuentra dónde debería empezar y acabar la carrera, de modo que se maximice la cantidad de público sin exceder la longitud máxima LL. En caso de empate en número de público, devuelve la carrera más larga (sin exceder nunca LL). Si hubiera más de una, devuelve la que empiece lo antes posible.

Entrada

Cada entrada contiene un número arbitrario de casos. Para cada caso, la primera línea contiene los números N1N\ge 1 y L1L\ge 1. La segunda línea contiene las longitudes (en metros) de los NN trozos de la calle mayor, en el sentido de la carrera (pendiente abajo). La tercera línea contiene el número de público asistente a cada uno de los NN trozos, todos ellos números entre 00 y 10001000.

Salida

Escribe, en una línea y separados por espacios, el punto inicial y el punto final de la carrera (ambos números expresados en metros desde el inicio de la calle mayor) y la cantidad de público que asistirá.

Si no es posible organizar ninguna carrera porque todos los trozos son mayores que LL, escribe 0000\ 0\ 0.

Puntuación

  • TestA:

    Resolver casos con 1N1001\le N\le 100, 1L10001\le L\le 1000 y donde todas las distancias son 1010.

  • TestB:

    Resolver casos con 1N1001\le N\le 100, 1L1091\le L\le 10^9 y donde todas las distancias están entre 1010 y 10710^7.

  • TestC:

    Resolver casos con 1N500001\le N\le 50000, 1L5000001\le L\le 500000 y donde todas las distancias son 10.

  • TestD:

    Resolver casos con 1N500001\le N\le 50000, 1L1091\le L\le 10^9 y donde todas las distancias están entre 1010 y 10710^7.

Public test cases
  • Input

    5 25
    10 10 10 10 10
    11 25 18 12 31 
    5 30
    10 10 10 10 10
    11 25 18 12 31 
    5 9
    10 10 10 10 10
    11 25 18 12 31 
    

    Output

    10 30 43
    20 50 61
    0 0 0
    
  • Input

    5 25
    10 20 10 15 10
    20 25 13 12 31 
    5 40
    10 20 10 15 10
    20 25 13 12 31 
    5 9
    3 4 5 15 9
    8 7 10 6 16
    

    Output

    40 65 43
    0 40 58
    3 12 17
    
  • Information
    Author
    Omer Giménez
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++