QOJ.ac

QOJ

시간 제한: 2 s 메모리 제한: 64 MB 총점: 100

#23759. Tasowanie kart

통계

Mamy $2n$ kart oznaczonych liczbami od $1$ do $2n$, ułożonych w stos w kolejności $1, 2, 3, \ldots, 2n$ patrząc od góry.

Karty te przekładamy, stosując wielokrotnie następujące metody:

Przełożenie (cut) z liczbą całkowitą $k$

Po podzieleniu talii na stos A składający się z $k$ górnych kart oraz stos B składający się z pozostałych $2n-k$ kart, kładziemy stos B na wierzchu stosu A.

problem_23759_23aef3360de866e41647ebc46ea8acfd.png

Tasowanie kaskadowe (riffle shuffle)

Dzielimy talię na stos A składający się z $n$ górnych kart oraz stos B składający się z pozostałych $n$ kart, po czym łączymy je w $1$ stos tak, aby od góry znajdowały się kolejno: $1$-sza karta z A, $1$-sza karta z B, $2$-ga karta z A, $2$-ga karta z B, $\ldots$, $n$-ta karta z A, $n$-ta karta z B.

problem_23759_b7a05d9ba29945a1384455aee42f82a0.png

Napisz program, który przetasuje karty zgodnie z instrukcjami z wejścia i wypisze numery kart po przetasowaniu w kolejności od góry.

Wejście

  • W wierszu $1$ zapisana jest liczba $n$ ($1 \le n \le 100$). Oznacza to, że liczba kart wynosi $2n$.
  • W wierszu $2$ zapisana jest liczba operacji $m$ ($1 \le m \le 1000$).
  • W $m$ wierszach od wiersza $3$ do wiersza $m + 2$ zapisana jest po $1$ liczbie całkowitej $k$ z przedziału od $0$ do $2n-1$, określającej kolejne metody przekładania kart:
    • W przypadku $k = 0$ wykonujemy tasowanie kaskadowe.
    • W przypadku $1 \le k \le 2n-1$ wykonujemy przełożenie z liczbą $k$.

Wyjście

Wyjście powinno składać się z $2n$ wierszy. W wierszu $1$ wypisz numer najwyższej karty po zakończeniu przekładania, w wierszu $2$ numer $2$-giej karty od góry po zakończeniu przekładania, i tak dalej — w wierszu $i$ wypisz numer $i$-tej karty od góry.

Przykład

Wejście 1

2
2
1
0

Wyjście 1

2
4
3
1

Wejście 2

3
4
2
4
0
0

Wyjście 2

1
5
4
3
2
6

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.