#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
const int N = 1e5 + 10 ;
int m;
int s0[N],s1[N];
int ans;
struct SCORE{
int y;
int res;
bool operator < (const SCORE &s)
{
return y < s.y;
}
}score[N];
int cnt;
int main()
{
cin >> m;
for(int i=0;i < m;i++)
{
cin >> score[i].y >> score[i].res;
}
sort(score,score+m);
for(int i=0;i < m;i++)
{
if(score[i].res == 0)
{
s0[i] = s0[i-1] + 1;
s1[i] = s1[i-1];
}
else
{
s1[i] = s1[i-1] + 1;
s0[i] = s0[i-1];
}
}
for(int i=0;i < m;i++)
{
//cout << s0[i-1] <<" " << s1[m-1] - s1[i-1] <<endl;
int j = i;
int tmp = s0[i-1] + s1[m-1] - s1[i-1];
// cout << tmp << endl;
while(j + 1 < m && score[j + 1].y == score[i].y) j++; // 处理重复
// cout << j << endl; // 0 2 3 4 5
if(tmp >= ans)
{
ans = tmp;
cnt = score[i].y;
}
i = j;
}
cout << cnt;
return 0;
}
CSP 期末预测之最佳阈值
最新推荐文章于 2024-03-09 19:01:53 发布