multimap+map即可(累加的思想)
//
// Created by clay on 2021/4/13.
//
#include <bits/stdc++.h>
using namespace std;
int main(){
int m;
cin>>m;
multimap<int,int> mp;
for(int i=0;i<m;i++){
int x,y;
cin>>x>>y;
mp.insert(pair<int,int>(x,y));
}
vector<int> v,v2(2); //v2用于累加
map<int,vector<int>> mp2;
//在一次遍历中实现累加的概念
for(auto i=mp.begin();i!=mp.end();i++){
v.push_back(i->first);
//第一维并不一定是单个字符
mp2[i->first].resize(4);
//计算单个字符中为1的个数
if(i->second==1){
mp2[i->first][1]++;
v2[1]++;
}
else{
mp2[i->first][0]++;
v2[0]++;
}
mp2[i->first][2]=v2[0];
mp2[i->first][3]=v2[1];
}
int cnt=0,f;
for(auto i=mp2.begin();i!=mp2.end();i++){
int temp=0;
//统计前面为0的个数
temp+=mp2[i->first][2]-mp2[i->first][0];
//统计包括自己的为1的个数
temp+=v2[1]-mp2[i->first][3]+mp2[i->first][1];
if(temp>=cnt){
cnt=temp;
f=i->first;
}
}
// cout<<f<<endl;
cout<<f;
return 0;
}