QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 64 MB Total points: 100

#23759. Карталарды араластыру

Statistics

$1$-ден $2n$-ге дейінгі сандар жазылған $2n$ карта бар, олар жоғарыдан төмен қарай $1, 2, 3, \ldots, 2n$ ретімен жиналып тұр.

Бұл карталарды келесі әдістерді бірнеше рет қолдану арқылы қайта реттейді:

Бүтін $k$ санымен кесу (cut)

Карталарды жоғарыдан санағандағы алғашқы $k$ картадан тұратын A бумасына және қалған $2n-k$ картадан тұратын B бумасына бөлгеннен кейін, A бумасының үстіне B бумасын қояды.

problem_23759_23aef3360de866e41647ebc46ea8acfd.png

Риффл шаффл (Riffle shuffle)

Карталарды жоғарыдан санағандағы алғашқы $n$ картадан тұратын A бумасына және қалған $n$ картадан тұратын B бумасына бөліп, жоғарыдан бастап A-ның $1$-ші картасы, B-ның $1$-ші картасы, A-ның $2$-ші картасы, B-ның $2$-ші картасы, $\ldots$, A-ның $n$-ші картасы, B-ның $n$-ші картасы болатындай етіп $1$ бумаға біріктіреді.

problem_23759_b7a05d9ba29945a1384455aee42f82a0.png

Енгізу деректеріндегі нұсқауларға сәйкес карталарды қайта реттегеннен кейін, карталардың нөмірлерін жоғарыдан бастап ретімен шығаратын программа жазыңыз.

Енгізу форматы

  • $1$-ші жолда $n$ ($1 \le n \le 100$) саны жазылған. Яғни карталардың саны — $2n$.
  • $2$-ші жолда амалдар саны $m$ ($1 \le m \le 1000$) жазылған.
  • $3$-ші жолдан $m + 2$-ші жолға дейінгі $m$ жолда $0$-ден $2n-1$-ге дейінгі $1$ бүтін сан $k$ жазылған, ол карталарды қайта реттеу әдісін ретімен көрсетеді:
    • $k = 0$ болған жағдайда риффл шаффл орындалады.
    • $1 \le k \le 2n-1$ болған жағдайда $k$ санымен кесу орындалады.

Шығару форматы

Шығару деректері $2n$ жолдан тұрады. $1$-ші жолға қайта реттеу аяқталғаннан кейінгі ең үстіңгі картаның нөмірін, $2$-ші жолға қайта реттеу аяқталғаннан кейінгі жоғарыдан санағанда $2$-ші картаның нөмірін, дәл сол сияқты $i$-ші жолға жоғарыдан санағанда $i$-ші картаның нөмірін шығарыңыз.

Мысалдар

Енгізу форматы 1

2
2
1
0

Шығару форматы 1

2
4
3
1

Енгізу форматы 2

3
4
2
4
0
0

Шығару форматы 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.