Submission #483392

#TimeUsernameProblemLanguageResultExecution timeMemory
483392ericpenguinCloud Computing (CEOI18_clo)Java
54 / 100
3053 ms21260 KiB
import java.io.*;
import java.util.*;
public class clo {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        ArrayList<int[]> logs = new ArrayList<>();
        for (int i=0; i<N; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            logs.add(new int[]{0, 0, 0});
            logs.get(i)[0] = Integer.parseInt(st.nextToken());
            logs.get(i)[1] = Integer.parseInt(st.nextToken());
            logs.get(i)[2] = -Integer.parseInt(st.nextToken());
        }
        int m = Integer.parseInt(br.readLine());
        for (int i=N; i<m+N; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            logs.add(new int[]{0, 0, 0});
            logs.get(i)[0] = -Integer.parseInt(st.nextToken());
            logs.get(i)[1] = Integer.parseInt(st.nextToken());
            logs.get(i)[2] = Integer.parseInt(st.nextToken());
        }
        Collections.sort(logs, (x, y) -> y[1]-x[1]);
        long[][] dp = new long[2][100001];
        Arrays.fill(dp[1], Long.MIN_VALUE);
        dp[1][0] = 0;
        for (int i=0; i<N+m; i++) {
            dp[i%2] = dp[1-i%2].clone();
            for (int c=0; c<=100000; c++) {
                if (c-logs.get(i)[0]<0 || c-logs.get(i)[0]>100000 || dp[1-i%2][c-logs.get(i)[0]]==Long.MIN_VALUE) continue;
                dp[i%2][c] = Math.max(dp[i%2][c], dp[1-i%2][c-logs.get(i)[0]] + logs.get(i)[2]);
            }
        }
        long ans = -1;
        for (int i=0; i<=100000; i++)
            ans = Math.max(ans, dp[(N+m-1)%2][i]);
        System.out.println(ans);
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...