#CSES2402. 两个栈排序

两个栈排序

题目背景

翻译自 CSES-2402 题。

题目描述

给定一个包含 nn 个数字的输入列表。列表中的每个整数都在 11nn 之间,并且每个整数出现恰好一次。

你的任务是使用两个栈来创建一个已排序的输出列表。在每一步操作中,你可以执行以下之一:

  • 将输入列表中的第一个数字移到一个栈中
  • 将栈中的一个数字移到输出列表的末尾

输入格式

第一行包含一个整数 nn

第二行包含 nn 个整数,表示输入列表的内容。

输出格式

输出 nn 个整数,表示每个数字被移动到哪个栈(1122)。

你可以输出任何有效的解。如果没有解,输出 IMPOSSIBLE

样例

5
2 3 1 5 4
1 2 1 1 2

说明/提示

1n2×1051 \leq n \leq 2 \times 10^5