一定 要保证 函数 一定 有 返回值!!!啊
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
typedef pair<long int,long int> p;
p a[25001];
int n,t;
int cmp(p a,p b)
{
return a.first<b.first;
}
int solve()
{
if(a[1].first>1)
return -1;
int i,start=1,cnt=0,medge=-1;
for(i=1;i<=n;++i)
{
if(a[i].first <= start)
{
medge = medge>a[i].second?medge:a[i].second;
if(medge >= t)
return ++cnt;
}
else if(a[i].first>start && a[i].first<=medge+1)
{
start = medge+1;
++cnt;
--i;
}
else
return -1;
}
if(medge >= t)
return ++cnt;
else
return -1;
}
int main()
{
scanf("%d %d",&n,&t);
for(int i=1;i<=n;++i)
{
scanf("%ld",&a[i].first);
scanf("%ld",&a[i].second);
}
sort(a+1,a+1+n,cmp);
printf("%d\n",solve());
}