Pagini recente » Cod sursa (job #933057) | Cod sursa (job #3165780) | Cod sursa (job #1770252) | Cod sursa (job #1276276) | Cod sursa (job #1674167)
//package energiiDynamic;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
public class Main {
public int solve (int[] e, int[] c, int g, int w){
int[][] m = new int[g][w+1];
int i, j;
for (i = 0; i < g; i++){
m[i][0] = 0;
}
for (i = 1; i <= w; i++){
if (e[0] >= i)
m[0][i] = c[0];
else {
m[0][i] = Integer.MAX_VALUE;
}
}
for ( i = 1; i < g; i++){
for (j = 1; j <= w; j++){
if (e[i] <= j){
if (m[i-1][j-e[i]] != Integer.MAX_VALUE)
m[i][j] = Math.min(m[i-1][j], c[i]+m[i-1][j-e[i]]);
else
m[i][j] = Integer.MAX_VALUE;
}
else { // e[i] > j
m[i][j] = Math.min(c[i], m[i-1][j]);
}
}
}
return m[g-1][w];
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("energii.in"));
String line = br.readLine();
int g = Integer.parseInt(line);
int[] e = new int[g];
int[] c = new int[g];
line = br.readLine();
int w = Integer.parseInt(line);
int i;
for (i = 0; i < g; i++){
line = br.readLine();
String[] splitted = line.split("\\s+");
e[i] = Integer.parseInt(splitted[0]);
c[i] = Integer.parseInt(splitted[1]);
}
PrintWriter pw = new PrintWriter("energii.out");
pw.write(String.valueOf(new Main().solve(e, c, g, w) + "\n" ));
// System.out.println(new Main().solve(e, c, g, w));
br.close();
pw.close();
}
}