You are given a permutation p of length n. Remove one element from permutation to make the number of records the maximum possible.

We remind that in a sequence of numbers a1, a2, …, ak the element ai is a record if for every integer j (1 ≤ j < i) the following holds: aj < ai.

Input
The first line contains the only integer n (1 ≤ n ≤ 105) — the length of the permutation.

The second line contains n integers p1, p2, …, pn (1 ≤ pi ≤ n) — the permutation. All the integers are distinct.

Output
Print the only integer — the element that should be removed to make the number of records the maximum possible. If there are multiple such elements, print the smallest one.

Examples
Input
1
1
Output
1
Input
5
5 1 2 3 4
Output
5
Note
In the first example the only element can be removed.
今天不适合写题,各种wa。
题意:删掉一个数字,使得这个序列中的record数最多。record序列是这样定义的,如果一个数a[i],它在[1~i]之间是最大的。问这样的数字最多的情况是删除哪个数字之后才有的。
思路:这种题目,一般就是考虑删除一个数字之后,对于整个序列的贡献。如果这个数字是1~i最大的,那么删除她对于这个序列来说就是少了一个。如果说这个数字是第二大的,那么删除最大的数字之后,这个数字就成了最大了,那么删除最大的数字对于整个序列的贡献就是增加了一个。这样我们就可以O(n)的时间复杂度处理出每个删除数字的贡献值,取最优的就可以了。
代码如下:

#include <bits/stdc++.h>
using namespace std;const int maxx=1e5+100;
int n,x,_max,_max1;
int dp[maxx];int main()
{scanf("%d",&n);for(int i = 0; i < n; i ++){scanf("%d",&x);if(x>_max) dp[x]=1,_max1=_max,_max=x;//大于最大值就是最大值,记得更新次大值else if(x>_max1) dp[_max]--,_max1=x;}int ans = 1;for(int i=1;i<=n;i++){if(dp[i]<dp[ans]) ans=i;}printf("%d\n",ans);return 0;
}
/*7
1 6 7 4 2 5 3*/

努力加油a啊,(o)/~

Remove Extra One(思维)相关推荐

  1. 【Codeforces - 900C】Remove Extra One(思维,STLset,tricks)

    题干: You are given a permutation p of length n. Remove one element from permutation to make the numbe ...

  2. Codeforces 题目合集+分类+代码 【Updating...】【361 in total】

    961A - Tetris                                                模拟                                      ...

  3. html 提交表单,图片和文字一起提交,图片存入服务器,图片地址和表单信息存入数据库,带后端php代码

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. html <!DOCTYPE html> <html><head>< ...

  4. 【项目实践】车距+车辆+车道线+行人检测项目实践

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自 | AI算法与图像处理 1.项目流程的简介 项目的主题框 ...

  5. html代码转换成为纯文本

    先解码.接着转换为纯文本,用这段代码: public static string HtmlToText(string source)         {             string resu ...

  6. neutron linux网络命令,OpenStack Neutron网络组件介绍(重要)

    列出已加载的扩展以验证进程成功启动:neutron-server openstack extension list --network +------------------------------- ...

  7. python pytorch fft_PyTorch 中的傅里叶卷积实现示例

    卷积 卷积在数据分析中无处不在.几十年来,它们一直被用于信号和图像处理.最近,它们成为现代神经网络的重要组成部分.如果你处理数据的话,你可能会遇到错综复杂的问题. 数学上,卷积表示为: 尽管离散卷积在 ...

  8. 在TSQL中替换换行符

    我想替换(或删除)TSQL字符串中的换行符. 有任何想法吗? 明显的 REPLACE(@string, CHAR(13), '') 只是不会做... #1楼 要执行大多数人想要的操作,请创建一个不是实 ...

  9. 消除UITableView下面的额外分隔符

    当我设置一个包含4行的表视图时,在填充的行下面还有额外的分隔符行(或额外的空白单元格). 我该如何移除这些细胞? #1楼 只需添加一个视图,其中所需的分隔符颜色为背景颜色,100%宽度,位于x0 y- ...

最新文章

  1. Know more about RAC statistics and wait event
  2. python实现http请求并发_Python使用grequests并发发送请求
  3. 你不是一个人在战斗!有人将吴恩达的视频教程做成了文字版
  4. 编码(encode)问题
  5. java反射--注解的定义与运用以及权限拦截
  6. linux内核实现ipsec,IP XFRM配置示例:利用linux kernel自带的IPSec实现,手动配置IPSec...
  7. 超级楼梯(HDU-2040)
  8. Vue开发总结 及 一些最佳实践 (已更新)
  9. POJ1700 Crossing River
  10. python定时启动任务_python--实现定时任务
  11. 最新彩虹DS仿小储云模板源码
  12. 计算机户籍管理,里诺户口管理系统
  13. 如何在电脑上临时登录微信,快来看这里!怎样在电脑上登录微信
  14. 第1195期机器学习日报(2017-12-26)
  15. ARM处理器比较:A8/A9
  16. Android之SQLite数据库及SQLiteStudio工具的使用
  17. mysql 1005是什么意思_mysql提示1005
  18. matlab在线性系统中的应用,MATLAB在控制系统仿真中的应用
  19. abap SY-INDEX SY-TABIX
  20. 数据结构(严蔚敏C语言版)代码实现持续更新中

热门文章

  1. IOS开发基础之UI的喜马拉雅的项目-10
  2. linux 关掉蓝牙自动,如何在Ubuntu 14.04中默认关闭蓝牙,蓝牙
  3. h5 app title隐藏_荒岛求生H5:有难度的文字冒险生存游戏,你能生存多久?
  4. 交换机工作原理及实验浅析
  5. java sqlite3查询慢_java连接数据库进行查询优化跑不通谁能帮我调下通
  6. 如何去除bootstrap中按钮的黑线边框
  7. np合并 python_这15个tips,带你领略 Python 的简洁和优雅
  8. android+note2+分辨率,Android自适应屏幕方向、大小和分辨率
  9. virtualbox php mac,mac一体机通过Oracle VM VirtualBox装win8.1系统
  10. 猪行天下之Python基础——1.1 Python开发环境搭建