

十万个数据就不可能用笨办法去一个一个试了,先将指数递减排序并假定阈值为最大值。阈值不断缩小时根据上一次的记录去修改得到新的阈值的正确率。如果选用下一个阈值时并没有缩小则记录,不立刻操作。
突然发现CSP有下载答卷功能。
#include<bits/stdc++.h>
using namespace std;
int n;
class s{
public:
int x,y;
s(int a,int b){
x=a;
y=b;
}
};
bool cmp(s q,s w){
return q.x>w.x;
}
int main(){
cin>>n;
vector<s>a;
int x,y;
int q=0;
while(n){
cin>>x;
cin>>y;
q+=y;
a.push_back(s(x,y));
n--;}
sort(a.begin(),a.end(),cmp);
n=a.size();
int i;
int cor;
int j,tmp;
int maxx=-1;
int maxj;
q=n-q;
q+=a[0].y;
vector<int > p;
for(i=0;i<n;i++){
p.push_back(a[i].y);
if(i!=n-1&&a[i].x==a[i+1].x){
continue;
}
for(j=0;j<p.size();j++){
if(p[j]==1){
q++;
}else{
q--;
}
}
p.clear();
if(q>maxx){
maxx=q;
maxj=a[i].x;
}
// cout<<a[i].x<<" "<<q<<endl;
}
cout<<maxj;
}
