import java.util.*;
import java.io.*;public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(br.readLine());int n = Integer.parseInt(st.nextToken());int M = Integer.parseInt(st.nextToken());int T = Integer.parseInt(st.nextToken());int[] m = new int[n + 1];int[] t = new int[n + 1];for (int i = 1; i <= n; i++) {st = new StringTokenizer(br.readLine());m[i] = Integer.parseInt(st.nextToken());t[i] = Integer.parseInt(st.nextToken());}int[][] dp = new int[M + 1][T + 1];for (int i = 1; i <= n; i++) { // 01背包for (int j = M; j >= m[i]; j--) {for (int k = T; k >= t[i]; k--) {dp[j][k] = Math.max(dp[j][k], dp[j - m[i]][k - t[i]] + 1);}}}System.out.println(dp[M][T]);}
}
仅仅就是01背包的一维数组变为二维......~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~