CSES – Movie Festival II

貪心、資料結構

#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;
}

相關文章

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *