1 #include<iostream>
//by chengdacaizi.
2 #include<stdio.h>
3 #define MAXN 25005
4 using namespace std;
5
6 struct Cows
7 {
8 int begin;
9 int end;
10 };
11
12 Cows cow[MAXN];
13
14 int compare(
const void * i,
const void *
j);
15 int main()
16 {
17 //freopen("acm.acm","r",stdin);
18 int i;
19 int j;
20 int n;
21 int t;
22 bool boo;
23 int last;
24 int max;
25 int tem;
26 int max_num;
27 int result;
28 scanf(
"%d %d",&n,&
t);
29 for(i =
0; i < n; ++
i)
30 {
31 scanf(
"%d %d",&cow[i].begin,&
cow[i].end);
32 }
33 qsort(cow,n,
sizeof(Cows),compare);
34 last =
1;
35 i =
0;
36 max =
0;
37 result =
0;
38 boo =
true;
39 while(
1)
40 {
41 max = -
1;
42 while(cow[i].begin <=
last)
43 {
44 if((tem = cow[i].end - last) >
max)
45 {
46 max =
tem;
47 max_num =
i;
48 }
49 ++
i;
50 }
51 if(max == -
1)
52 {
53 // cout<<cow[i].begin<<" 000000000000"<<endl;//很巧合的处理,当数组越界的时候,当然,还没有完成,那么自动跳出,cout<<-1;
54 boo =
false;
55 break;
56 }
57 ++
result;
58 if(cow[max_num].end >=
t)
59 {
60 break;
61 }
62 else
63 {
64 last = cow[max_num].end +
1;
65 }
66 }
67 if(boo)
68 cout<<result<<
endl;
69 else
70 cout<<-
1<<
endl;
71
72 }
73
74 int compare(
const void * i,
const void *
j)
75 {
76 return *((
int *)i) - *((
int *
)j);
77 }
转载于:https://www.cnblogs.com/gavinsp/p/4568377.html