AcWing 3298. 期末预测之最佳阈值
原题链接
中等
作者:
xz_62
,
2024-10-22 00:21:24
,
所有人可见
,
阅读 2
所谓“大道至简”
#include<bits/stdc++.h>
using namespace std;
// const int M=1e5+10;
int m;
vector<int> t;//用于记录结果对的
vector<int> f;//用于记录结果错的
vector<int> v;
bool predict(int y,int sita){
return y<sita?0:1;
}
void work(){
cin>>m;
for(int i=1;i<=m;i++){
int y,res;
cin>>y>>res;
v.push_back(y);
if(res) t.push_back(y);
else f.push_back(y);
}
int szT=t.size();
int szF=f.size();
sort(t.begin(),t.end());
sort(f.begin(),f.end());
int mx=INT_MIN;
int ans=-1;
for(int sita:v){
int cnt=0;
int i=lower_bound(t.begin(),t.end(),sita)-t.begin();
cnt+=max(0,szT-i);
int j=lower_bound(f.begin(),f.end(),sita)-f.begin();
cnt+=max(0,j);
if(cnt>mx||(cnt==mx&&sita>ans)){
ans=sita;
mx=cnt;
}
}
cout<<ans;
}
int main(){
work();
return 0;
}