Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cmath>
- #include <cstdio>
- #include <vector>
- #include <iostream>
- #include <algorithm>
- using namespace std;
- int time_to_minutes(string time_str) {
- int hours = stoi(time_str.substr(0, 2));
- int minutes = stoi(time_str.substr(3, 2));
- return (hours - 8) * 60 + minutes;
- }
- int main() {
- int iter;
- cin>>iter;
- vector<pair<int, int>> requests;
- for (int i = 0; i < iter; i++) {
- string input;
- cin>>input;
- string start_str = input.substr(0, 5);
- string end_str = input.substr(6, 5);
- int start_time = time_to_minutes(start_str);
- int end_time = time_to_minutes(end_str);
- if (start_time > end_time || end_time > 10 * 60 || start_time < 0) {
- continue;
- }
- requests.push_back(make_pair(end_time, start_time));
- }
- sort(requests.begin(), requests.end()); // sort by start time
- int max_requests = 0;
- int end_time = 0;
- int vec_len = requests.size();
- for (int i = 0; i < vec_len; i++) {
- int start_time = requests[i].second;
- int end_time_this = requests[i].first;
- if (start_time >= end_time) { // this request can be granted
- max_requests++;
- end_time = end_time_this;
- }
- }
- cout<<max_requests<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement