Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.io.IOException;
- import java.util.StringTokenizer;
- /*
- * Tuenti Contest
- * Challenge 5 - Milkman
- * Author: Pedro Antonio Pardal Jimena
- * Email: [email protected]
- */
- public class Milkman
- {
- private static int[] parseNumberList( String s, int n )
- {
- int[] result = new int[n];
- StringTokenizer st = new StringTokenizer( s, "," );
- for ( int i = 0; i < n; i++ )
- {
- result[i] = Integer.parseInt( st.nextToken() );
- }
- return result;
- }
- private static int[][] calcularTabla( int n, int w, int[] pesos, int[] litros )
- {
- int[][] tabla = new int[n+1][w+1];
- for ( int i = 0; i <= n; i++ )
- tabla[i][0] = 0;
- for ( int j = 0; j <= w; j++ )
- tabla[0][j] = 0;
- for ( int i = 1; i <= n; i++ )
- {
- for ( int j = 1; j <= w; j++ )
- {
- if ( pesos[i-1] > j )
- {
- tabla[i][j] = tabla[i-1][j];
- }
- else
- {
- if ( tabla[i-1][j] > litros[i-1] + tabla[i-1][j - pesos[i-1]] )
- tabla[i][j] = tabla[i-1][j];
- else
- tabla[i][j] = tabla[i-1][j - pesos[i-1]] + litros[i-1];
- }
- }
- }
- return tabla;
- }
- private static int parseInput( String linea )
- {
- StringTokenizer st = new StringTokenizer( linea, " " );
- int n = Integer.parseInt( st.nextToken() );
- int w = Integer.parseInt( st.nextToken() );
- int[] pesos = parseNumberList( st.nextToken(), n );
- int[] litros = parseNumberList( st.nextToken(), n );
- int[][] tabla = calcularTabla( n, w, pesos, litros );
- return tabla[n][w];
- }
- public static void main( String[] args ) throws IOException
- {
- BufferedReader reader = new BufferedReader( new InputStreamReader( System.in ) );
- while ( reader.ready() )
- {
- String linea = reader.readLine();
- int result = parseInput( linea );
- System.out.println( result );
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement