Practice for Microsoft 2015 Online Test register

Ended

Participants:1406

Verdict:Accepted
Score:100 / 100
Submitted:2014-10-18 12:58:03

Lang:Java

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        int M = in.nextInt();
        int[] need = new int[N+1];
        int[] value = new int[N+1];
        int[] data = new int[M+1];
        for(int i = 1i <= Ni++) {
            need[i= in.nextInt();
            value[i= in.nextInt();
        }
        for(int i = 0i <= Mi++) {
            data[i= 0;
        }
        for(int i = 0i <= Ni ++) {
            for(int j = Mj >= need[i]; j--) {
                if(need[i]<j) {
                    data[j= Math.max(data[j-need[i]]+value[i], data[j]);
                }
            }
        }
        System.out.println(data[M]);
    }
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX