5151: 【单调栈】百度2022秋招-士兵的序列

金币值:1 时间限制:10.000 s 内存限制:128 M
正确:48 提交:138 正确率:34.78% 命题人:
点赞量:0 收藏量:0 题目类型:程序 知识点: 单调栈 百度

题目描述

小明买了一些玩具士兵,他邀请小红一起玩。

他总共有n个士兵,刚开始时,这n个士兵被排成一列,第i个士兵的战斗力为hi。

然后小明和小红开始给它们排序。二人总共进行了m次操作。 

小明的每次操作会选择一个数k,将前k个士兵按战斗力从小到大排序。 

小红的每次操作会选择一个数k,将前k个士兵按战斗力从大到小排序。 

请问所有操作结束后从前往后每个士兵的战斗力是多少?

输入格式

输入的第一行包含两个整数,n和m,用空格分隔。其中,n代表士兵的总数,m代表操作的次数。 

输入的第二行包含n个整数,用空格分隔。这些整数表示每个士兵的战斗力,按照他们初始的顺序排列。 

接下来的m行描述操作的记录。每一行包含两个整数,tmp和k,用空格分隔。

其中,tmp表示操作者,1表示小明,2表示小红;k表示选择的数。这些操作记录描述了小明和小红按照题目要求的方式对士兵进行排序的过程。

输出格式

一个包含n个整数的行,每个整数表示最终排列后每个士兵的战斗力

输入样例    复制

5 3
3 1 4 5 2
1 3
2 2
1 4

输出样例    复制

1 3 4 5 2