Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main(){
- std::ios::sync_with_stdio(false);
- int N, K;
- cin >> N >> K;
- vector<pair<long,long>> tracks(N);
- for(int i = 0; i < N; i++){
- cin >> tracks[i].first >> tracks[i].second;
- }
- multiset<long, greater<long>> slotsUsed;
- sort(tracks.begin(), tracks.end(), [](const pair<long,long> &p1, const pair<long,long> &p2){
- return p1.second < p2.second;
- });
- long done = 0;
- for(int i = 0; i < N; i++){
- multiset<long>::iterator it = slotsUsed.lower_bound(tracks[i].first);
- if(it != slotsUsed.end()){
- slotsUsed.erase(it);
- }
- if(slotsUsed.size() < K){
- slotsUsed.insert(tracks[i].second);
- done++;
- }
- }
- cout << done << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement