p2376.cpp

来自「大概POJ上50道比较难的题的代码」· C++ 代码 · 共 30 行

CPP
30
字号
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN = 25010;
struct sh{ int s,t; };
sh a[MAXN];
bool cmp(sh a,sh b){ return a.s < b.s || a.s == b.s && a.t < b.t; }
int main(){
    freopen("t.txt","r",stdin);
    freopen("r.txt","w",stdout);
    int n,t;
  while(cin >> n >> t){
    for(int i = 0;i < n;++i) scanf("%d%d",&a[i].s,&a[i].t);
    sort(a,a+n,cmp);
    int i(0),f(1),ans(0);
    while(i < n && f <= t){
        int far(0);
        for(;i < n && a[i].s <= f;++i)
            far = max(far,a[i].t);
        if(far < f) break;
        else{
            f = far + 1;
            ++ans;
        }
    }
    if(f <= t) puts("-1");
    else cout << ans << endl;
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?