#include<bits/stdc++.h>
using namespace std;
int main()
{
vector<int> v0,v1;
int m;
cin >> m;
while(m--)
{
int y,res;
cin >> y >> res;
if(res==0)
v0.push_back(y);
else
v1.push_back(y);
}
sort(v0.begin(),v0.end());
sort(v1.begin(),v1.end());
int maxn=0,ans=-1;
for(int i=0;i<v0.size();i++)
{
auto t1=lower_bound(v1.begin(),v1.end(),v0[i]);
int sum=v1.end()-t1;
auto t2=lower_bound(v0.begin(),v0.end(),v0[i]);
sum+=t2-v0.begin();
if(sum==maxn && v0[i]>ans)
ans=v0[i];
else if(sum>maxn)
{
ans=v0[i];
maxn=sum;
}
}
for(int i=0;i<v1.size();i++)
{
auto t1=lower_bound(v1.begin(),v1.end(),v1[i]);
int sum=v1.end()-t1;
auto t2=lower_bound(v0.begin(),v0.end(),v1[i]);
sum+=t2-v0.begin();
if(sum==maxn && v1[i]>ans)
ans=v1[i];
else if(sum>maxn)
{
ans=v1[i];
maxn=sum;
}
}
cout << ans << endl;
return 0;
}
csp-期末预测之最佳阈值
最新推荐文章于 2024-08-31 15:00:00 发布
该代码实现了一个C++程序,它读取输入的整数m和两个数组(v0和v1),分别表示两种条件下的数值。程序对这两个数组进行排序,然后寻找两个数组中使得其差值最小的最大数。利用lower_bound函数查找目标元素的位置,并计算两个数组中目标元素之后的元素个数,以此找到使差值最小的最大数。最后输出这个结果。

1095

被折叠的 条评论
为什么被折叠?



