问题 5386 --队伍整理

5386: 队伍整理

题目描述

一天体育课,老师还没来,小明让班里 $n$ 个同学先排好队。陆续有人往队伍最后躲去。一些同学还时不时地低头问小明,排在自己前面成绩最好的同学是谁。 这时老师来了。看着空缺的队伍,限小明以最快的时间整顿队伍。老师只关心队伍是否整齐没有空缺。 老师给了小明一次移动一名同学的权力。小明要求你回答之前同学们的问题,并告诉小明在老师来之后,至少移动多少个同学可以使队伍整齐。

输入

第一行为两个整数,表示有 $n$ 位同学,在老师来之前进行了 $m$ 次小动作。 第二行为 $n$ 个整数 $a_i$,表示初始时队伍中第 $i$ 位同学的年级成绩排名(数据保证不会有两人成绩重复)。 接下来 $m$ 行描述同学们的行为,每行由一个字符 A 或 M 和一个整数 $x$ 构成。 若为 A,$x$ 则表示年级成绩排名为 $x$ 的同学向小明询问自己前面成绩最好的是哪位同学; 若为 M,$x$ 则表示年级成绩排名为 $x$ 的同学此时躲到了当前队伍的最尾端(不存在队尾同学躲向队尾)。

输出

前 行,对于每个同学的询问,输出所询问同学的年级成绩排名。若询问学生不存在则输出 $-1$。 最后一行输出至少移动多少位同学,使得队伍整齐。

样例输入输出

输入#1 复制
4 5
23 150 37 301
A 37
M 23
M 37
A 301
A 37 
输出#1 复制
23
150
23
1 

提示

对于 $10\%$ 的数据,$n \leq 20$,$m \leq 20$。 对于 $30\%$ 的数据,$n \leq 10^3$,$m \leq 10^4$。 对于 $100\%$ 的数据,$n \leq 10^5$,$m \leq 10^5$,$a_i \leq 10^7$。
序号 标题 作者 发表时间 费用 订购数 操作