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.004 second
Submitted On: 2025-12-21 15:09:45
#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;
using ll = long long;
using pii = pair<int,int>;
using piii = tuple<int,int,int>;
#define endl '\n'
#define f first
#define s second
int 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;
}
}
}