
貪心、資料結構
#include<bits/stdc++.h>
#define st_it set<int>::iterator
using namespace std;
bool cmp(pair<int,int>a, pair<int,int>b){
if(a.second==b.second) return a.first>b.first;
return a.second<b.second;
}
int main(){
int n,k; cin>>n>>k;
vector<pair<int,int>>v(n);
for(int i=0;i<n;i++) cin>>v[i].first>>v[i].second;
sort(v.begin(),v.end(),cmp);
multiset<int>st;
for(int i=0;i<k;i++) st.insert(-1);
int ans=0;
for(pair<int,int>p: v){
int start=p.first, end=p.second;
st_it era = st.upper_bound(start);
if(era==st.begin()) continue;
era--;
st.erase(era);
st.insert(end);
ans++;
}
cout<<ans<<'\n';
return 0;
}

發佈留言