Untitled
unknown
plain_text
a year ago
1.5 kB
7
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