Some checks failed
Build and Push Docker Images / build (src/LiquidCode.Tester.Gateway/Dockerfile, git.nullptr.top/liquidcode/liquidcode-tester-gateway-roman, gateway) (push) Successful in 1m12s
Build and Push Docker Images / build (src/LiquidCode.Tester.Worker/Dockerfile, git.nullptr.top/liquidcode/liquidcode-tester-worker-roman, worker) (push) Has been cancelled
29 lines
8.9 KiB
HTML
29 lines
8.9 KiB
HTML
<HTML><HEAD><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||
<META content="no-cache" http-equiv="pragma">
|
||
<META content="-1" http-equiv="expires">
|
||
<META content="text/html;charset=UTF-8" http-equiv="content-type">
|
||
<LINK href="problem-statement.css" rel="stylesheet" type="text/css">
|
||
<TITLE>Очередь за кексами</TITLE>
|
||
<SCRIPT type="text/x-mathjax-config">
|
||
MathJax.Hub.Config({
|
||
tex2jax: {inlineMath: [['$$$','$$$']], displayMath: [['$$$$$$','$$$$$$']]}
|
||
});
|
||
</SCRIPT>
|
||
<SCRIPT async="" src="https://polygon.codeforces.com/lib/MathJax/MathJax.js?config=TeX-MML-AM_CHTML" type="text/javascript">
|
||
</SCRIPT>
|
||
</HEAD><BODY>
|
||
<DIV class="problem-statement"><DIV class="header"><DIV class="title">Очередь за кексами</DIV><DIV class="time-limit"><DIV class="property-title">ограничение по времени на тест</DIV>1 секунда</DIV><DIV class="memory-limit"><DIV class="property-title">ограничение по памяти на тест</DIV>256 мегабайт</DIV><DIV class="input-file input-standard"><DIV class="property-title">ввод</DIV>стандартный ввод</DIV><DIV class="output-file output-standard"><DIV class="property-title">вывод</DIV>стандартный вывод</DIV></DIV><DIV class="legend"><P>В честь юбилея ректорат ЮФУ решил запустить акцию «Сто и десять кексов». В каждом корпусе университета открылась лавка с кексами, в которой каждый студент может получить бесплатные кексы.</P><P>Не прошло и пары минут после открытия, как к лавкам набежали студенты и образовалось много очередей. Но самая большая очередь образовалась в главном корпусе ЮФУ. Изначально в этой очереди стояло $$$n$$$ студентов, но потом в течение следующих $$$m$$$ минут какие-то студенты приходили и вставали в очередь, а какие-то уходили.</P><P>За каждым студентом закреплен номер его зачетной книжки, будем называть это число номером студента. У каждого студента будет уникальный номер, по которому можно однозначно его идентифицировать. Будем считать, что каждую минуту происходило одно из следующих событий:</P><P></P><OL> <LI> Студент с номером $$$x$$$ пришел и встал перед студентом с номером $$$y$$$; </LI><LI> Студент с номером $$$x$$$ пришел и встал в конец очереди; </LI><LI> Студент с номером $$$x$$$ ушел из очереди; возможно, он потом вернется. </LI></OL><P></P><P>Аналитикам стало интересно, а какой будет очередь после $$$m$$$ минут? </P><P>Помогите им и сообщите конечное состояние очереди.</P></DIV><P></P><P></P><DIV class="input-specification"><DIV class="section-title">Входные данные</DIV><P></P><P>В первой строке заданы два целых числа $$$n$$$ и $$$m$$$ $$$(1 \le n, m \le 10^5)$$$ — текущее число студентов в очереди и количество изменений.</P><P>В следующей строке задается $$$n$$$ целых <SPAN class="tex-font-style-bf">различных</SPAN> чисел $$$a_1, a_2, \cdots , a_n$$$ $$$(1 \le a_i \le 10^9)$$$, где $$$a_i$$$ — номер студента, который стоит на $$$i$$$-й позиции в очереди.</P><P>В следующих $$$m$$$ строках идет описание запросов изменения очереди.</P><P>В каждой строке в зависимости от типа запроса задается два или три числа. Первое число $$$t_j$$$ $$$(1 \le t_j \le 3)$$$ — тип события, которое произошло в $$$j$$$-ю минуту.</P><P>Если $$$t_j = \textbf{1}$$$, то в строке задается еще 2 числа $$$x$$$ $$$(1 \le x_j \le 10^9)$$$ и $$$y$$$ $$$(1 \le y_j \le 10^9)$$$ — номер студента, который пришел, и номер студента, перед которым он встанет в очереди. Гарантируется, что студент с номером $$$x$$$ ещё не занял очередь, а студент с номером $$$y$$$ уже стоит в ней. </P><P>Если $$$t_j = \textbf{2}$$$, то в строке задается еще 1 число $$$x$$$ $$$(1 \le x_j \le 10^9)$$$ — номер студента, который пришел и встал в конец очереди. Гарантируется, что студент с номером $$$x$$$ ещё не занял очередь.</P><P>Если $$$t_j = \textbf{3}$$$, то в строке задается еще 1 число $$$x$$$ $$$(1 \le x_j \le 10^9)$$$ — номер студента, который ушел из очереди. Гарантируется, что студент с номером $$$x$$$ стоит в очереди.</P></DIV><P></P><P></P><DIV class="output-specification"><DIV class="section-title">Выходные данные</DIV><P></P><P>В первой строке выведите одно число $$$|a|$$$ — длину очереди после выполнения всех запросов изменения.</P><P>В следующей строке выведите $$$|a|$$$ чисел $$$a_1, a_2, \cdots , a_{|a|}$$$, где $$$a_i$$$ — номер студента, который стоит на $$$i$$$-й позиции в очереди.</P></DIV><P></P><P></P><DIV class="sample-tests"><DIV class="section-title">Пример</DIV><P></P><P></P><DIV class="sample-test"><DIV class="input"><DIV class="title">Входные данные</DIV><PRE class="content" data-content="7 6
|
||
1 2 3 4 5 6 7
|
||
1 8 3
|
||
2 9
|
||
3 3
|
||
1 3 9
|
||
2 10
|
||
3 1
|
||
">
|
||
<DIV class="test-example-line test-example-line-even test-example-line-0">7 6</DIV><DIV class="test-example-line test-example-line-even test-example-line-0">1 2 3 4 5 6 7</DIV><DIV class="test-example-line test-example-line-even test-example-line-0">1 8 3</DIV><DIV class="test-example-line test-example-line-even test-example-line-0">2 9</DIV><DIV class="test-example-line test-example-line-even test-example-line-0">3 3</DIV><DIV class="test-example-line test-example-line-even test-example-line-0">1 3 9</DIV><DIV class="test-example-line test-example-line-even test-example-line-0">2 10</DIV><DIV class="test-example-line test-example-line-even test-example-line-0">3 1</DIV></PRE></DIV><DIV class="output"><DIV class="title">Выходные данные</DIV><PRE class="content">
|
||
9
|
||
2 8 4 5 6 7 3 9 10
|
||
</PRE></DIV></DIV></DIV><P></P><P></P><DIV class="note"><DIV class="section-title">Примечание</DIV><P></P><P>Изначально очередь выглядит следующим образом:</P><P><IMG class="tex-graphics" src="e29b6eb80ce5dcdb59a696421149e86cf24fff83.png"></P><P>В первую минуту приходит студент с номером 8 и встает перед студентом с номером 3.</P><P><IMG class="tex-graphics" src="cb6dba7c484189e88d8e1bc0e15767bbb44c0c69.png"></P><P>Потом студент с номером 9 встает в конец очереди.</P><P><IMG class="tex-graphics" src="b65f6e3c0bcc7e96380e577e3a79156116f6947e.png"></P><P>Студент с номером 3 уходит из очереди.</P><P><IMG class="tex-graphics" src="514e52cdf82b640ce29f9178bbd9be3379ab43dd.png"></P><P>Потом он возвращается и становится перед студентом с номером 9.</P><P><IMG class="tex-graphics" src="6f77902a9e98428961fb5c1bde374d946a82cdd2.png"></P><P>После в конец очереди становится студент с номером 10.</P><P><IMG class="tex-graphics" src="7b0ffd2ae443ff754e3131a6ddc77af4cb17a043.png"></P><P>И студент с номером 1 уходит из очереди.</P><P><IMG class="tex-graphics" src="15c12c02bcb2f87450906d26075f1336c6f8bb79.png"></P><P>После $$$m$$$ событий очередь имеет следующий вид:</P><P><IMG class="tex-graphics" src="ef8c0f8c7ba7108bef3d50979ae09eb267158ee6.png"></P></DIV></DIV><P></P><P> </P>
|
||
|
||
</BODY></HTML> |