Submission

Status:
[PPPP-][SSSSS][SSSSSSSSSS]

Score: 0

User: mydKN

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-03-22 19:42:37

#include<bits/stdc++.h>

using namespace std;

struct stc{
    int val, state;
    bool operator<(const stc& a) const{
        if(val == a.val) return state > a.state;
        return val < a.val;
    }
};

int n;
vector<stc> vec;
int cnt;
int med;

int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);
    cin >> n;
    for(int i=0;i<n;++i){
        int s, t;
        cin >> s >> t;
        vec.push_back({s, 1});
        vec.push_back({t, -1});
        med += (t-s);
    }
    med /= 2;
    sort(vec.begin(), vec.end());
    for(int i=0;i<vec.size()-1;++i){
        cnt += vec[i].state;
        int tmp = (vec[i+1].val - vec[i].val) * cnt;
        if(med <= tmp){
            int tmp = vec[i].val;
            --med;
            while(med > 0){
                ++tmp;
                for(int i=0;i<cnt;++i){
                    --med;
                    if(med <= 0) break;
                }
            }
            cout << tmp << "\n";
            break;
        }
        else med -= tmp;
    }
}