Submission

Status:

[PPPPP][-SSSS][SSSSSSSSSS]

Subtask/Task Score:

{20/20}{0/30}{0/50}

Score: 20

User: Kx

Problemset: ห้องสมุดเมือง 3M

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-17 08:52:25

#include <bits/stdc++.h>
using namespace std;

int n, res = 0;
vector<pair<int, int>> p, g;

int main() {
    cin >> n;
    p.resize(n);
    
    for(int i = 0; i < n; ++i) {
        cin >> p[i].first >> p[i].second;
    }
    
    sort(p.begin(), p.end());
    
    for(auto x : p) {
        int l = x.first, r = x.second - 1;

        if(g.empty() || g.back().second < l) {
            g.push_back({l, r});
        } else {
            g.back().second = max(g.back().second, r);
        }
    }
    
    int sz = 0;
    for(auto x : g) {
        sz += (x.second - x.first + 1);
    }
    
    sz /= 2;
    
    for(auto x : g) {
        int cur_sz = x.second - x.first + 1;
        if(sz <= cur_sz && x.second - x.first > 0) {
            res = x.first + sz - 1;
            break;
        } else if(sz <= cur_sz && n == 1){
            res = x.first + sz;
            break;
        } else {
            sz -= cur_sz;
        }
    }
    
    cout << res << '\n';
    
    return 0;
}