#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;
const int maxn = 100010;
struct node
{
int x, y;
}Node[100010];
int cont_0[100010], cont_1[100010];
struct nnode
{
int id,num0,num1,all;
}p[maxn];
bool cmp(node a, node b)
{
if(a.x != b.x) return a.x < b.x;
else return a.y < b.y;
}
bool cmp1(nnode a, nnode b)
{
if(a.all != b.all) return a.all > b.all;
else return a.id > b.id;
}
int main()
{
int n;
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> Node[i].x >> Node[i].y;
}
sort(Node + 1, Node + n + 1, cmp);
int sum = 0;
Node[0] ={-10,-10};
for(int i = 1; i <= n; i++)
{
p[i].id = Node[i].x;
p[i].num0 = sum;
if(Node[i].y == 0) sum++;
}
sum = 0; //1继承下边的个数
for(int i = n; i >= 1; i--)
{
if(Node[i].y == 1) sum++;
p[i].num1 = sum;
}
for(int i = 1; i <= n; i++)
{
int j = i;
while(Node[j].x == Node[i].x) j--;
p[i].all = p[j + 1].num0 + p[i].num1;
}
sort(p + 1 , p+n + 1, cmp1);
cout << p[1].id << endl;
return 0;
}
2020-12-2 期末预测之最佳阈值
最新推荐文章于 2023-03-04 10:43:29 发布