CSES Problem Set
Movie Festival II
In a movie festival, movies will be shown. Syrjälä's movie club consists of members, who will be all attending the festival.
You know the starting and ending time of each movie. What is the maximum total number of movies the club members can watch entirely if they act optimally?
Input
The first input line has two integers and : the number of movies and club members.
After this, there are lines that describe the movies. Each line has two integers and : the starting and ending time of a movie.
Output
Print one integer: the maximum total number of movies.
Constraints
Input:
Output:
You know the starting and ending time of each movie. What is the maximum total number of movies the club members can watch entirely if they act optimally?
Input
The first input line has two integers and : the number of movies and club members.
After this, there are lines that describe the movies. Each line has two integers and : the starting and ending time of a movie.
Output
Print one integer: the maximum total number of movies.
Constraints
Input:
5 2
1 5
8 10
3 6
2 5
6 9
Output:
4
#include <bits/stdc++.h>
using namespace std;
#define int long long int#define F first#define S second#define pb push_back#define si set <int>#define vi vector <int>#define pii pair <int, int>#define vpi vector <pii>#define vpp vector <pair<int, pii>>#define mii map <int, int>#define mpi map <pii, int>#define spi set <pii>#define endl "\n"#define sz(x) ((int) x.size())#define all(p) p.begin(), p.end()#define double long double#define que_max priority_queue <int>#define que_min priority_queue <int, vi, greater<int>>#define bug(...) __f (#__VA_ARGS__, __VA_ARGS__)#define print(a) for(auto x : a) cout << x << " "; cout << endl#define print1(a) for(auto x : a) cout << x.F << " " << x.S << endl#define print2(a,x,y) for(int i = x; i < y; i++) cout<< a[i]<< " "; cout << endl
inline int power(int a, int b){ int x = 1; while (b) { if (b & 1) x *= a; a *= a; b >>= 1; } return x;}
template <typename Arg1>void __f (const char* name, Arg1&& arg1) { cout << name << " : " << arg1 << endl; }template <typename Arg1, typename... Args>void __f (const char* names, Arg1&& arg1, Args&&... args){ const char* comma = strchr (names + 1, ','); cout.write (names, comma - names) << " : " << arg1 << " | "; __f (comma + 1, args...);}
const int N = 200005;
bool cmp(pii &a, pii&b){ if(a.second!=b.second)return a.second<b.second; return a.first<b.first;}
void solve() {
int n,k;cin>>n>>k;
vpi v(n);
for (int i = 0; i < n; i++){ cin>>v[i].first; cin>>v[i].second;}
sort(v.begin(),v.end(),cmp);multiset<int>s;int ans=0;
for (int i = 0; i < k; ++i) s.insert(0);
for (int i = 0; i < n; i++) { auto it = s.upper_bound(v[i].first); if (it == begin(s)) continue; s.erase(--it); s.insert(v[i].second); ans++; }
cout<<ans<<endl;
}
int32_t main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
clock_t z = clock();
int t = 1;// cin >> t; while (t--) solve();
return 0;}
0 Comments
If you have any doubts/suggestion/any query or want to improve this article, you can comment down below and let me know. Will reply to you soon.