diff --git a/Livros/Livros.cpp b/Livros/Livros.cpp new file mode 100644 index 0000000..c72a079 --- /dev/null +++ b/Livros/Livros.cpp @@ -0,0 +1,121 @@ +#include + +using namespace std; + +#define V vector + +#define rmin(a, b) a = min(a, b) +#define rmax(a, b) a = max(a, b) + +#define rep(i, lim) for (size_t i = 0; i < (lim); i++) +#define nrep(i, s, lim) for (size_t i = s; i < (lim); i++) + +#define repv(i, v) for (auto &i : (v)) +#define fillv(v) for (auto &itr_ : (v)) { cin >> itr_; } +#define sortv(v) sort(v.begin(), v.end()) +#define all(v) (v).begin(), (v).end() + +using vi = vector; +using vvi = vector; +using vvvi = vector; +using vvvvi = vector; + +using ll = long long; + +using vl = vector; +using vvl = vector; +using vvvl = vector; +using vvvvl = vector; + +template +auto operator<<(ostream &os, const vector &vec)->ostream& { + os << vec[0]; + for (size_t i = 1; i < vec.size(); i++) { + os << ' ' << vec[i]; + } + os << '\n'; + return os; +} + +template +auto operator>>(istream &is, vector &vec)->istream& { + for (auto &i : vec) { + is >> i; + } + return is; +} + +template +auto operator<<(ostream &os, const vector> &vec)->ostream& { + for (auto &i : vec) { + os << i[0]; + for (size_t j = 1; j < i.size(); j++) { + os << ' ' << i[j]; + } + os << '\n'; + } + return os; +} + +template +auto operator>>(istream &is, vector> &vec)->istream& { + for (auto &i : vec) { + for (auto &j : i) { + is >> j; + } + } + return is; +} + +enum type_of_day { + START = 0, + FINISH = 1 +}; + +class days { + public: + ll time; + type_of_day type; + + days(ll time, type_of_day type) : time(time), type(type) {} + + auto operator<(const days &d) const->bool { + if (time == d.time) { + return type < d.type; + } + return time > d.time; + } +}; + +int main() +{ + ios::sync_with_stdio(false); + cin.tie(nullptr); + + int n; + cin >> n; + int maxi = 0; + priority_queue pq; + while (n--) { + ll x, y; + cin >> x >> y; + pq.emplace(x, type_of_day(0)); + pq.emplace(x + y, type_of_day(1)); + } + + int now = 0; + while (!pq.empty()) { + auto [v, t] = pq.top(); + pq.pop(); + // cout << v << ' ' << t << '\n'; + + if (t == 0) { + now++; + rmax(maxi, now); + continue; + } + now--; + } + + cout << maxi << '\n'; +}