暴力解决只有70分:
#include <iostream>
using namespace std;
int main()
{
int m,count=0;
cin >> m;
int a[m],b[m];
for(int i=0;i<m;i++)
{
cin >> a[i] >> b[i];
}
int r=a[0];
int max=0;
for(int i=0;i<m;i++)
{
for(int j=0;j<m;j++)
{
if((a[j]>=a[i]&&b[j]==1)||(a[j]<a[i]&&b[j]==0))
count++;
}
if(count>max||(count==max&&a[i]>r))
{
r=a[i];
max=count;
}
count=0;
}
cout << r << endl;
return 0;
}
100代码:
优化的关键:
用暴力二重循环,会重复很多不必要的遍历和比较操作(遍历阈值时,比如阈值3结束查询,阈值4开始查询,这时比3和4都小的