LLenando MI Mochila X35547


Statement
 

pdf   zip

html

Quieres aprovechar al máximo la capacidad de tu mochila, la cual es M. Para ello debes decidir de entre un conjunto de n objetos O = {O1, O2, ..., On} cuáles de ellos debes seleccionar para llevar dentro de tu mochila. Cada objeto Oi tiene asociado un valor Vi y un peso Wi. Debes hacer un programa que dado n, M y el listado de valores V = {V1, V2, ..., Vn} y pesos W = {W1, W2, ..., Wn} que distingue a cada uno de los n objetos, elija el subconjunto de objetos O* ⊆ O cuyo peso combinado no supere el máximo M, y cuyo valor combinado sea el más grande posible.

Entrada

Los valores n, M, seguidos por 2 líneas. La primer línea es una secuencia de n números enteros representando el valor de cada objeto. La segunda línea es una secuencia de n números enteros representando el peso de cada objeto.

Salida

Una línea con un número indicando el valor combinado máximo que se pudo obtener al elegir objetos para cargar en la mochila, respetando la restricción que la suma de sus pesos no exceda M.

Observación

  • Asuma que un objeto cualquier no puede pesar más de 50 unidades;
  • Asuma que un objeto cualquier no puede valer más de 50 unidades;
  • Asuma que el número de objetos máximo será de 100;
  • Asuma que el valor máximo de M es de 200;
  • Asuma que el índice del primer objeto es 1 y el del último n en los listados de pesos y valroes;
  • No olvide imprimir un salto de línea al final.
Public test cases
  • Input

    3 8
    6 8 9
    5 3 3
    

    Output

    17
    
  • Information
    Author
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++ Java