1
+ import java .io .*;
2
+ import java .util .*;
3
+
4
+ public class Kickstart_2020_F_2 {
5
+ static final int MAX_INT = 1000000001 ;
6
+ public static void main (String [] args ) throws IOException {
7
+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
8
+ StringTokenizer st = new StringTokenizer (br .readLine ());
9
+ int T = Integer .parseInt (st .nextToken ());
10
+ for (int i = 1 ; i <= T ; i ++) {
11
+ st = new StringTokenizer (br .readLine ());
12
+ int N = Integer .parseInt (st .nextToken ());
13
+ int K = Integer .parseInt (st .nextToken ());
14
+ ArrayList <Harvest > list = new ArrayList <>();
15
+ int sum = 0 ;
16
+ for (int j = 0 ; j < N ; j ++) {
17
+ st = new StringTokenizer (br .readLine ());
18
+ int start = Integer .parseInt (st .nextToken ());
19
+ int end = Integer .parseInt (st .nextToken ());
20
+ list .add (new Harvest (start , end ));
21
+ }
22
+ Collections .sort (list );
23
+ int cur = list .get (0 ).start +K ;
24
+ sum ++;
25
+ for (int j = 0 ; j < list .size (); j ++) {
26
+ if (list .get (j ).start >= cur ) {
27
+ cur = list .get (j ).start + K ;
28
+ sum ++;
29
+ }
30
+ if (list .get (j ).end > cur ) {
31
+ while (list .get (j ).end > cur ) {
32
+ sum ++;
33
+ cur += K ;
34
+ }
35
+ }
36
+ }
37
+ System .out .println ("Case #" + i + ": " +sum );
38
+ }
39
+ }
40
+ }
41
+
42
+ class Harvest implements Comparable <Harvest >{
43
+ int start , end ;
44
+
45
+ Harvest (int start , int end ) {
46
+ this .start = start ;
47
+ this .end = end ;
48
+ }
49
+
50
+ @ Override
51
+ public int compareTo (Harvest p ) {
52
+ if (this .end > p .end ) return 1 ;
53
+ else if (this .end == p .end ) {
54
+ if (this .start > p .start ) return 1 ;
55
+ }
56
+ return -1 ;
57
+ }
58
+ }
0 commit comments