Untitled

 avatar
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