Submission

Status:

[PP-SS][SSSSS][SSSSSSSSSS]

Subtask/Task Score:

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

Score: 0

User: hyyh

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

Language: cpp

Time: 0.003 second

Submitted On: 2025-12-21 15:11:24

#include <iostream>
#include <math.h>
#include <vector>
#include <string>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <cstring>
#include <iomanip>
#include <set>
#include <bitset>
using namespace std;
#define int long long
using ll = long long;
using pii = pair<int,int>;
using piii = tuple<int,int,int>;
#define endl '\n'
#define f first
#define s second

signed main(){
    int n;cin >> n;
    vector<int> vc1;
    vector<int> vc2;
    int sum = 0;
    int b = 0;
    int m = 0;
    for(int i = 0;i < n;i++){
        int g;
        cin >> g;vc1.emplace_back(g);
        sum -= g;
        cin >> g;vc2.emplace_back(g);
        sum += g;
        b = min(b,vc1[i]);
        m = max(m,vc2[i]);
    }
    sort(vc1.begin(),vc1.end(),greater<int>());
    sort(vc2.begin(),vc2.end(),greater<int>());
    int is = 0;
    int sur = 0;
    int need = sum/2;
    for(int i = b;i <= m;i++){
        while(i == vc1.back()){
            is++;
            vc1.pop_back();
        }
        while(i == vc2.back()){
            is--;
            vc2.pop_back();
        }
        sur += is;
        if(sur >= need){
            cout << i;
            break;
        }
    }
}