package work;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;
public class MissonMy {
static int N;
static int[][] work;// 0开始时间;1结束时间;2工作时间
static int max_time;
public static void main(String args[]) throws FileNotFoundException {
/* Scanner sc=new Scanner(System.in); */
Scanner sc = new Scanner(new File("src/misson.txt"));
int T = sc.nextInt();
for (int i = 0; i < T; i++) {
N = sc.nextInt();
work = new int[N][3];
for (int j = 0; j < N; j++) {
work[j][0] = sc.nextInt() * 60 + sc.nextInt();
work[j][1] = sc.nextInt() * 60 + sc.nextInt();
work[j][2] = work[j][1] - work[j][0];
}
Qsort(0, N - 1, work);
/* for (int j = 0; j < N; j++) {
System.out.println(Arrays.toString(work[j]));
}
System.out.println();*/
max_time = 0;
dfs(0, 0, 0, 0);
System.out.println(max_time);
}
}
private static void dfs(int step, int time, int enda, int endb) {
if (step == N) {
if (max_time<time)
max_time = time;
return;
}
// A做
if (work[step][0] >= enda)
dfs(step + 1, time + work[step][2], work[step][1], endb);
// B做
if (work[step][0] >=endb)
dfs(step + 1, time + work[step][2], enda, work[step][1]);
// 不做
dfs(step + 1, time , enda, endb);
}
private static void Qsort(int l, int r, int[][] ss) {
if (l < r) {
int[] key=new int[3];
copy(key,ss[r]);
int i = l;
int j = r;
while (i < j) {
while (i < j && ss[i][0] < key[0])
i++;
copy(ss[j],ss[i]);
while (i < j && ss[j][0] >= key[0])
j--;
copy(ss[i],ss[j]);
}
copy(ss[j],key);
Qsort(l, j - 1, ss);
Qsort(j + 1, r, ss);
}
}
private static void copy(int[] r, int[] s) {
for (int i = 0; i < s.length; i++) {
r[i]=s[i];
}
}
}
、、input
6
5
8 0 14 0
9 0 12 0
13 0 18 0
10 0 17 0
10 30 13 30
6
8 0 18 10
13 10 15 20
10 50 13 30
13 20 18 10
12 0 12 50
12 0 15 30
8
10 40 12 20
9 10 15 10
11 0 16 30
11 50 15 50
8 30 13 50
15 0 18 10
9 30 10 10
13 10 18 30
10
10 50 13 50
9 40 12 0
8 20 15 10
8 30 10 20
11 40 13 20
8 20 13 50
14 20 18 10
15 0 16 40
8 0 16 50
10 0 11 10
14
10 40 15 50
9 40 10 0
12 40 16 10
12 40 13 0
12 20 17 40
11 40 17 30
9 0 12 0
16 10 17 30
17 0 18 40
8 40 12 40
8 20 14 30
12 40 18 40
15 0 16 20
9 40 10 10
15
8 10 8 20
8 30 8 40
9 40 10 10
10 20 10 30
10 40 10 50
11 0 11 20
11 20 11 40
11 50 12 30
12 50 13 40
12 10 12 40
12 50 13 30
13 40 14 40
14 50 15 20
15 30 15 50
16 10 16 40
、、output
900
950
970
1090
1150
410