7461. 双栈排序 (Two Stacks Sorting)
时间限制:1000 MS 内存限制:512 MB
题目描述
# 双栈排序 (Two Stacks Sorting) 时间限制:$1.00\text{ s}$ 空间限制:$512\text{ MB}$ ## 题目描述 给你一个由 $n$ 个数字组成的初始输入列表,其中 $1$ 到 $n$ 之间的每个整数在列表中恰好出现一次。 你的任务是通过利用两个栈将这个列表进行排序。在每一步中,你只能进行以下两类操作之一: - 将输入列表的第一个数字移入其中一个栈。 - 将其中一个栈顶的数字移到输出列表的末尾。 ## 输入格式 第一行包含一个整数 $n$。 第二行包含 $n$ 个整数:即输入列表的内容。 ## 输出格式 输出 $n$ 个整数:对于每一个数字,输出它应该被移入的栈的编号($1$ 或 $2$)。 你可以输出任何合法的方案。若无解,只需输出 `IMPOSSIBLE`。 ## 输入输出样例 ### 输入 #1 ```text 5 2 3 1 5 4 ``` ### 输出 #1 ```text 1 2 1 1 2 ``` ## 说明/提示 ### 数据规模与约定 - $1 \le n \le 2 \cdot 10^5$