Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- struct Movie{
- ll start;
- ll end;
- bool operator>(const Movie &a) const{
- if(end == a.end){
- return start>a.start;
- }
- return end>a.end;
- };
- };
- int n, k;
- multiset<Movie, greater<Movie>> mv;
- int ans;
- int main(){
- //freopen("moviefestivalII.in", "r", stdin);
- cin >> n >> k;
- Movie check;
- for(int i=0; i<n; i++){
- ll a, b;
- cin >> a >> b;
- mv.insert({a, b});
- //if(check.end<b){
- //check.start = a;
- //check.end = b;
- //}
- }
- check = *mv.begin();
- //for(Movie i: mv){
- //cout << i.start << ", " << i.end << '\n';
- //}
- //Movie c;
- //c.end = 3;
- //auto i = mv.lower_bound(c);
- //Movie r = *i;
- //cout << r.start << ", " << r.end << '\n';
- //if(i == mv.end()) cout << "HI" << '\n';
- //cout << check.start << ", " << check.end << '\n';
- for(int j=0; j<k; j++){
- //cout << check.start << ", " << check.end << '\n';
- auto it = mv.find(check);
- while(it!=mv.end()){
- ans++;
- Movie c;
- c.end = (*it).start;
- auto next = mv.lower_bound(c);
- //cout << (*next).start << ", " << (*next).end << '\n';
- mv.erase(it);
- it = next;
- }
- //for(Movie i: mv){
- //cout << i.start << ", " << i.end << '\n';
- //}
- check = *mv.begin();
- }
- cout << ans << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement