#LQ1206. 双向排序

双向排序

题目描述

给定序列 (a1,a2,,an)=(1,2,,n)(a_1,a_2,⋅⋅⋅,a_n)=(1,2,⋅⋅⋅,n),即 ai=ia_i=i

小蓝将对这个序列进行 mm 次操作,每次可能是将 a1,a2,,aqia_1,a_2,⋯ ,a_{q_i} 降序排列,或者将 aqi,aqi+1,,ana_{q_i},a_{q_{i+1}},⋯ ,a_n 升序排列。

请求出操作完成后的序列。

输入描述

输入的第一行包含两个整数 n,mn,m​,分别表示序列的长度和操作次数。

接下来 mm​ 行描述对序列的操作,其中第 ii 行包含两个整数 pi,qip_i,q_i​ 表示操作类型和参数。当 pi=0p_i=0​​ 时,表示将 a1,a2,,aqia_1,a_2,⋅⋅⋅,a_{q_i} 降序排列;当 pi=1p_i=1​ 时,表示将 aqi,aqi+1,,ana_{q_i},a_{q_{i+1}},⋯ ,a_n​ 升序排列。

输出描述

输出一行,包含 nn 个整数,相邻的整数之间使用一个空格分隔,表示操作完成后的序列。

3 3
0 3
1 2
0 2
3 1 2

样例说明

原数列为 (1,2,3)(1,2,3)

11 步后为 (3,2,1)(3,2,1)

2​​​2​​​​ 步后为 (3,1,2)(3,1,2)

33​​​ 步后为 (3,1,2)(3,1,2) 步操作后相同,因为前两个数已经是降序了。

评测用例规模与约定

对于 30%30\% 的评测用例,n,m1000n,m≤1000

对于 60%60\% 的评测用例,n,m5000n,m≤5000

对于所有评测用例,1n,m1000000pi11q<in1≤n,m≤100000,0≤p_i≤1,1≤q<i≤n