USACO 2011年1月精英赛铜组试题 洗盘子

更新时间:2024-06-02 05:04:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

USACO 2011年1月精英赛铜组试题 洗盘子

Bessie 和 Canmuu 将联手洗掉N (1<= N <= 10,000) 个脏盘子。 Bessie 洗; Canmuu 来擦干它们.

每个盘子有一个指定的编号,范围1..N. 开始,所有盘子按顺序排列在栈中, 1号盘子在顶端,N号盘子在底端.

Bessie 会先洗一些盘子,然后放在洗过的盘子栈里(这样原来的顺序颠倒).

然后,或者她洗别的盘子,或者Canmuu 擦干她已经洗好的部分或全部盘子,放在擦干的盘子栈里。

这样直到所有盘子洗完擦干后放置的顺序是什么? 比如 1 <-- top 2 3 4

5 <-- bottom

第一次洗3个:

未洗

| 洗了但未擦干 | | 洗了并擦干的 | | |

TOP 1 2 2

3 -> 3 -> 3 -> 3 4 4 4 2 4 2 BOTTOM 5 - - 5 1 - 5 1 - 5 1 -

开始 洗了1号 洗了2号 洗了3号

Canmuu 擦了2个,然后放在擦干的盘子栈里:

TOP 3 4 2 -> 4 2 -> 4 2 BOTTOM 5 1 - 5 1 3 5 1 3

Bessie 又来洗最后2个:

TOP 5 4 2 -> 4 2 -> 4 2 BOTTOM 5 1 3 5 1 3 - 1 3

Finally, Canmuu 擦干了剩下的三个盘子,放置顺序如下:

TOP 1 4 4 5 -> 5 -> 5 -> 5 4 2 4 2 2 2 BOTTOM - 1 3 - 1 3 - 1 3 - - 3

序号如下: 1, 4, 5, 2, 3.

程序文件名: dishes

输入格式::

第一行: 一个整数N,表示盘子的数量

第2行至N+1行: 每一行两个整数 ,第一整数为1表示洗盘子,为2表示擦盘子,第二个整数表示数量

输入样例 (dishes.in): 5 1 3 2 2 1 2 2 3

输出格式:

共N行:擦干后盘子从顶端到底端的顺序 输出样例 (dishes.out): 1 4 5 2 3

本文来源:https://www.bwwdw.com/article/6ml6.html

Top