#include <bits/stdc++.h>
using namespace std;
bool compare(const vector<int>& a, const vector<int>& b) {
return a[1] < b[1];
}
int activitySelection(vector<int> &start, vector<int> &finish) {
vector<vector<int>> arr;
for (int i = 0; i < start.size(); i++) {
arr.push_back({start[i], finish[i]});
}
// Sort activities by finish time
sort(arr.begin(), arr.end(), compare);
// At least one activity can be performed
int count = 1;
// Index of last selected activity
int j = 0;
for (int i = 1; i < arr.size(); i++) {
// Check if current activity starts
// after last selected activity finishes
if (arr[i][0] > arr[j][1]) {
count++;
// Update last selected activity
j = i;
}
}
return count;
}
int main() {
vector<int> start = {1, 3, 0, 5, 8, 5};
vector<int> finish = {2, 4, 6, 7, 9, 9};
cout << activitySelection(start, finish);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGNvbXBhcmUoY29uc3QgdmVjdG9yPGludD4mIGEsIGNvbnN0IHZlY3RvcjxpbnQ+JiBiKSB7CiAgICByZXR1cm4gYVsxXSA8IGJbMV07Cn0KCmludCBhY3Rpdml0eVNlbGVjdGlvbih2ZWN0b3I8aW50PiAmc3RhcnQsIHZlY3RvcjxpbnQ+ICZmaW5pc2gpIHsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gYXJyOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RhcnQuc2l6ZSgpOyBpKyspIHsKICAgICAgICBhcnIucHVzaF9iYWNrKHtzdGFydFtpXSwgZmluaXNoW2ldfSk7CiAgICB9CgogICAgLy8gU29ydCBhY3Rpdml0aWVzIGJ5IGZpbmlzaCB0aW1lCiAgICBzb3J0KGFyci5iZWdpbigpLCBhcnIuZW5kKCksIGNvbXBhcmUpOwoKICAgIC8vIEF0IGxlYXN0IG9uZSBhY3Rpdml0eSBjYW4gYmUgcGVyZm9ybWVkCiAgICBpbnQgY291bnQgPSAxOwoKICAgIC8vIEluZGV4IG9mIGxhc3Qgc2VsZWN0ZWQgYWN0aXZpdHkKICAgIGludCBqID0gMDsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8IGFyci5zaXplKCk7IGkrKykgewoKICAgICAgICAvLyBDaGVjayBpZiBjdXJyZW50IGFjdGl2aXR5IHN0YXJ0cwogICAgICAgIC8vIGFmdGVyIGxhc3Qgc2VsZWN0ZWQgYWN0aXZpdHkgZmluaXNoZXMKICAgICAgICBpZiAoYXJyW2ldWzBdID4gYXJyW2pdWzFdKSB7CiAgICAgICAgICAgIGNvdW50Kys7CgogICAgICAgICAgICAvLyBVcGRhdGUgbGFzdCBzZWxlY3RlZCBhY3Rpdml0eQogICAgICAgICAgICBqID0gaTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGNvdW50Owp9CgppbnQgbWFpbigpIHsKICAgIHZlY3RvcjxpbnQ+IHN0YXJ0ID0gezEsIDMsIDAsIDUsIDgsIDV9OwogICAgdmVjdG9yPGludD4gZmluaXNoID0gezIsIDQsIDYsIDcsIDksIDl9OwogICAgY291dCA8PCBhY3Rpdml0eVNlbGVjdGlvbihzdGFydCwgZmluaXNoKTsKICAgIHJldHVybiAwOwp9Cg==