Untitled
unknown
plain_text
a year ago
1.5 kB
4
Indexable
public class Main { static int N, ans; static int[] ta = new int[3]; static int[] pa = new int[3]; static int[] v = new int[3]; static int[] ba = new int[3]; static int[] ea = new int[3]; static int[] cur = new int[3]; static int[] a = new int[55]; static int[] d = new int[55]; public static void sum(int k) { int sum = 0; for (int i = 0; i < N; i++) { int point = 0; for (int j = 0; j < k; j++) { if (a[i] <= ba[j] && a[i] + d[i] >= ea[j]) { if (cur[j] > point) { point = cur[j]; } } } sum += point; } if (sum > ans) { ans = sum; } } public static void backtrack(int time, int k) { if (time > 50 || k == 3) { sum(k); return; } backtrack(time + 1, k); for (int i = 0; i < 3; i++) { if (v[i] == 0) { v[i] = 1; ba[k] = time; ea[k] = time + ta[i]; cur[k] = pa[i]; backtrack(ea[k], k + 1); v[i] = 0; } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for (int tc = 1; tc <= T; tc++) { N = sc.nextInt(); for (int i = 0; i < 3; i++) { ta[i] = sc.nextInt(); } for (int i = 0; i < 3; i++) { pa[i] = sc.nextInt(); } for (int i = 0; i < N; i++) { a[i] = sc.nextInt(); d[i] = sc.nextInt(); } ans = 0; backtrack(1, 0); System.out.println("Case #" + tc); System.out.println(ans); } } }
Editor is loading...
Leave a Comment