#3756. 双端队列

    ID: 3756 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>数据结构队列算法竞赛进阶指南基本数据结构0x12

双端队列

题目描述

达达现在碰到了一个棘手的问题,有N N 个整数需要排序。

达达手头能用的工具就是若干个双端队列。

她从 1 到 NN 需要依次处理这 NN 个数,对于每个数,达达能做以下两件事:

1.新建一个双端队列,并将当前数作为这个队列中的唯一的数;

2.将当前数放入已有的队列的头之前或者尾之后。

对所有的数处理完成之后,达达将这些队列按一定的顺序连接起来后就可以得到一个非降的序列。

请你求出最少需要多少个双端序列。

输入格式

第一行输入整数N N,代表整数的个数。

接下来 NN 行,每行包括一个整数 DiD_i,代表所需处理的整数。

输出格式

输出一个整数,代表最少需要的双端队列数。

样例

6
3
6
0
9
6
3
2

数据范围

  • 1N2000001≤N≤200000

来源

  • NOI 2011 北京市选
  • 算法竞赛进阶指南