#include<iostream>
#include<algorithm>
using namespace std;//两重循环超时,采用每次循环找比自己大的1的个数和比自己小的0的个数
int pk[100000001];//存放相同的theta的个数,有两个相同则为1,三个相同则为2
typedef struct {//存放y和结果
int theta;
int result;}Node;
bool cmp(Node a,Node b){return a.theta<b.theta;}
int main(){
int m;
cin >>m;
Node pp[100005];for(int i =0;i<m;i++){
cin >>pp[i].theta>>pp[i].result;}sort(pp,pp+m,cmp);//从小到大
int temp1=0;
int p1[100005];for(int i=m-1;i>=0;i--)//寻找>=自己且为1的个数 {if(pp[i].result==1){
temp1+=1;}
p1[i]=temp1;}
int temp0=0;
int p0[100005];for(int i =1;i<m;i++)//寻找<自己且为0的个数 {if(pp[i-1].theta==pp[i].theta&&pp[i-1].result!=pp[i].result){
pk[pp[i].theta]+=1;//如果和上一个theta相同但结果不同,则相同数加一 }if(pp[i-1].result==0){
temp0+=1;}
p0[i]=temp0-pk[pp[i].theta];//要减去相同的个数 }
int dex=0;
int sum=0;for(int i =0;i<m;i++)//寻找预测正确最多的数 {if(p1[i]+p0[i]>=sum){
sum=p1[i]+p0[i];
dex=pp[i].theta;}}
cout <<dex<<endl;}//2021.1.16
期末预测之最佳阈值#include<iostream>#include<algorithm>using namespace std;//两重循环超时,采用每次循环找比自己大的1的个数和比自己小的0的个数 int pk[100000001];//存放相同的theta的个数,有两个相同则为1,三个相同则为2 typedef struct {//存放y和结果 int theta; int result;}Node; bool cmp(Node a,Node b)