Cod sursa(job #2556706)

Utilizator AplayLazar Laurentiu Aplay Data 25 februarie 2020 09:52:27
Problema Problema rucsacului Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 1.05 kb

import java.io.File;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Main {

    public static void main(final String[] args) throws IOException {
        final Scanner reader = new Scanner(new File("rucsac.in"));
        final BufferedWriter writer = new BufferedWriter(new FileWriter("rucsac.out"));
        
        final int N = reader.nextInt();
        final int G = reader.nextInt();
        final int[] profit = new int[1 + N];
        final int[] weight = new int[1 + N];
        for (int it = 1; it <= N; ++it) {
            weight[it] = reader.nextInt();
            profit[it] = reader.nextInt();
        }

        final int[][] dp = new int[1 + N][1 + G];
        for (int i = 1; i <= N; ++i) {
            for (int w = weight[i]; w <= G; ++w) {
                dp[i][w] = Math.max(profit[i] + dp[i - 1][w - weight[i]], dp[i - 1][w]);
            }
        }

        writer.write(dp[N][G] + "\n");
        writer.flush();

        reader.close();
        writer.close();
    }

}