Universal Cup Judging System

Universal Cup

時間限制: 1.0 s 記憶體限制: 256 MB 總分: 100 互動
统计

Это интерактивная задача. После вывода каждой строки необходимо сбрасывать буфер вывода (flush). Вы можете использовать cout << flush в C++, System.out.flush() в Java и sys.stdout.flush() в Python. Вы должны строго следовать инструкциям в разделе «Протокол взаимодействия», иначе вы можете получить вердикт «неправильный ответ» (wrong answer), «превышено ограничение по времени» (time limit exceeded) или другой.

Поскольку работа в шахте тяжелая и отнимает много времени, гномы решили обратиться за помощью в автоматизации некоторых своих задач. Их текущая задача — распределить $N$ минералов (пронумерованных от $1$ до $N$) по различным классам. Чтобы помочь с этим, Гном-Рабочий установил новый конвейер. Гномы могут добавлять образцы минералов в начало ленты конвейера и снимать их с ее конца (то есть снимать те минералы, которые были добавлены раньше всего).

К сожалению, у этого конвейера нет базы знаний, поэтому он не может определить класс какого-либо минерала на нем. Однако у него есть другая полезная функция: он показывает, сколько различных классов минералов в данный момент находится на ленте. Оказывается, для шахты этого достаточно, так как гномам не нужно знать класс каждого минерала: им просто нужно разделить минералы на кучи одного класса.

Можете ли вы помочь гномам решить эту задачу с помощью конвейера?

Протокол взаимодействия

Классы минералов фиксированы изначально и не зависят от сделанных запросов.

Сначала считайте строку, содержащую одно целое число $N$ — количество минералов для классификации. Затем вы можете выполнять операции следующих двух типов:

  • + id — минерал с идентификатором id добавляется в начало конвейерной ленты.
  • - — минерал с конца конвейерной ленты снимается. Если лента пуста, ничего не происходит.

После каждой операции конвейер выводит одну строку, содержащую количество различных классов, находящихся на нем в данный момент.

Чтобы вывести ответ, сначала выведите строку, содержащую символ !, за которым следует $k$ — количество различных классов в шахте. Затем выведите $k$ строк, каждая из которых описывает один класс. Каждая строка должна содержать число $c_i$, за которым следуют $c_i$ идентификаторов минералов этого класса. Каждый из $N$ минералов должен присутствовать ровно в одном классе. Вы можете выводить классы и минералы внутри каждого класса в любом порядке.

Не забывайте сбрасывать буфер вывода после каждой операции и после вывода ответа. Не забывайте ставить пробелы между числами и символами +, -, !. Вы должны считать все данные от интерактора.

Ограничения

$1 \le N \le 500$, вы можете выполнить не более $35\,000$ операций.

Примеры

Входные данные 1

3
1
2
2
2

Выходные данные 1

+ 1
+ 2
+ 3
-
! 2
2 1 3
1 2

Примечание

В первом примере $N = 3$, а классы минералов $1, 2, 3$ равны $1, 2, 1$ соответственно.

Локальное тестирование

В разделе Files вы можете найти архив A.zip, содержащий примеры тестов и грейдер grader.cpp. Чтобы протестировать свое решение, скомпилируйте его, а затем передайте имя теста и ваш исполняемый файл скомпилированному ./grader:

./grader [test] [executable]

Например: ./grader 0b.in ./abc

Не гарантируется, что поведениe примера грейдера полностью совпадает с официальным. Однако ни один из них не является адаптивным.

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.