bzoj#P1046. [HAOI2007]上升序列

[HAOI2007]上升序列

题目描述

对于一个给定的 S={a1,a2,a3,,an}S=\{a_1,a_2,a_3,\cdots ,a_n\},若有 P={ax1,ax2,ax3,,axm}P=\{a_{x_1},a_{x_2},a_{x_3},\cdots,a_{x_m}\},满足 (x1<x2<<xm)(x_1\lt x_2\lt \cdots \lt x_m)(ax1<ax2<<axm)(a_{x_1}\lt a_{x_2}\lt \cdots \lt a_{x_m})。那么就称 PPSS 的一个上升序列。如果有多个 PP 满足条件,那么我们想求字典序最小的那个。 任务:

给出 SS 序列,给出若干询问。对于第 ii 个询问,求出长度为 lil_i 的上升序列,如有多个,求出字典序最小的那个(即首先 x1x_1 最小,如果不唯一,再看 x2x_2 最小……),如果不存在长度为 lil_i 的上升序列,则打印 Impossible

输入格式

第一行一个 nn,表示序列一共有 nn 个元素。第二行 nn 个数,为 a1,a2,,ana_1,a_2,\cdots,a_n。第三行一个 mm,表示询问次数。下面接 mm 行每行一个数 ll,表示要询问长度为 ll 的上升序列。

输出格式

对于每个询问,如果对应的序列存在,则输出,否则打印 Impossible

6
3 4 1 2 3 6
3
6
4
5
Impossible
1 2 3 6
Impossible
6
6 7 1 2 3 4
1
2
6 7

数据规模与约定

对于 100%100\% 的数据,1n1041\le n \le 10^41m1031\le m \le 10^3,保证数据随机。