问题 4498 --2009 女生赛C--大家来找包

4498: 2009 女生赛C--大家来找包

时间限制: 1 Sec  内存限制: 256 MB
提交: 0  解决: 0
[提交][状态][讨论版][命题人:]

题目描述

每当到了吃饭时间,饭堂内里坐满的除了吃饭的人以外,大家各色各样的包包也占据了一席之地。当大家坐在一起吃饭时,都喜欢把大家的包包叠在一起并放到一旁的空椅子上,等吃完饭,大家再逐个拿回自己的包包离开。

但小菲发现,大家在拿回自己的包包时,经常没有按照包包从上往下的叠放顺序逐个取回。因此,为免在取走自己包包时再出现“倒塌”的现象,小菲和她的朋友们采取了一种取包的方法。

首先,每人要取回自己的包包时,从叠放在最上面的包包(设为A)开始,若发现不是自己的包包,就把A放置到另外一空椅子上。

接着,继续看当前叠放在最上面的包包(设为B包)。若B包仍然不是自己的包包,则同样地把B叠放在之前放置到一边的A包的上面。接着,继续看当前叠放在最上面的包包,如此类推 ...... 

直到发现叠放在最上的包包是自己的包包后,把自己的包包拿走,然后把叠放在另外一椅子上的所有包包(包括A, B包 ... ),不改变其当前叠放顺序,整个移回来,放置到最上面。接着,让下一个要取包的人进行取包......每个人都按照同样的规则依次取走自己的包包,直到最后一个人取走了自己的包包。

过程示意

例如,C同学要取走自己的包包

第一步,C同学发现最上面的A包不是自己的包包,把A包拿起放到一旁

第二步,C同学发现B包也不是自己的包包,拿起放到一旁,并叠在A包上面

第三步 , C同学找到了自己的包包 C包拿走

第四步 把左边整叠的包包挪回来,叠放到没被动过的包包上面 

现在,小菲想想考一考你 :给定初始时包包叠放的顺序,在一部分人取走自己的包包后,当前剩余叠放的包包顺序如何 ?

输入

第一行输入一个整数N( 0 < N < 100 ) 表示总共有多少人的包包叠放在一起。(N = 0的时候结束)

接下来一行,输入N个整数 (每个整数对应为一人的编号),表示最开始时包包叠放的顺序。数字从左往右对应表示包包从上往下叠放的顺序。(:整数对应表示为该编号的人的包包,保证编号不会重复。)

接下来一行,输入一个整数K ( 0 < K < N ),表示已有K个人取走了自己的包。(保证不会取完所有的包)

接下一行输入K个整数,数字从左往右,对应表示该数字编号的人先后取走了自己的包包。(注 保证编号不会重复。)

输出

待这K人取走自己的包包后,当前叠放着的包包,按从上往下的顺序,输出包包的编号(每行输出一个编号)。输出格式为“[_id_]”,其中id为一个整数,表示包包的编号(也即对应所属的人的编号)。

样例输入

4<br/>1 2 3 4<br/>2<br/>3 2<br/>0<br/>

样例输出

[_1_]<br/>[_4_]<br/>

来源

[提交][状态]