7075.Two Stacks Sorting

Time Limit: 1s Memory Limit: 512MB

You are given an input list that consists of $n$ numbers. Each integer between $1$ and $n$ appears exactly once in the list.

Your task is to create a sorted output list using two stacks. On each move you can do one of the following:

  • Move the first number from the input list to a stack
  • Move a number from a stack to the end of the output list

Input Format(From the terminal/stdin)

The first input line has an integer $n$ .

The second line has $n$ integers: the contents of the input list.

  • $1 \le n \le 2 \cdot 10^5$

Output Format(To the terminal/stdout)

Print $n$ integers: for each number the stack where it is moved ( $1$ or $2$ ).

You can print any valid solution. If there are no solutions, print IMPOSSIBLE .

Sample Input

Copy
5
2 3 1 5 4
 \n
 · · · · \n

Sample Output special judge

Copy
1 2 1 1 2
 · · · · \n
Source: CSES, Additional Problems II, 2402

Submit

请先 登录

© 2025 FAQs