Pagini recente » Istoria paginii runda/simulare_de_oni_3/clasament | Cod sursa (job #1740375) | Monitorul de evaluare | Cod sursa (job #1328507) | Cod sursa (job #2556706)
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();
}
}