Universal Cup Judging System

Universal Cup

시간 제한: 1.0 s 메모리 제한: 256 MB 총점: 100 인터랙티브
통계

この問題はインタラクティブ問題です。各行を出力した後、出力バッファをフラッシュする必要があります。C++ では cout << flush、Java では System.out.flush()、Python では sys.stdout.flush() を使用できます。「入出力形式」セクションの指示に厳密に従ってください。そうしない場合、不正解(Wrong Answer)や実行時間制限超過(Time Limit Exceeded)などの判定を受ける可能性があります。

鉱山での作業は過酷で時間がかかるため、ドワーフたちは作業の一部を自動化するために助けを求めることにしました。彼らの現在の課題は、$N$ 個の鉱物($1$ から $N$ までの番号で識別される)を異なるクラスに分類することです。これを支援するため、作業員ドワーフは新しいベルトコンベアを設置しました。ドワーフたちはベルトの先頭に鉱物のサンプルを追加し、末尾からそれらを取り除く(つまり、最も早く追加された鉱物を取り除く)ことができます。

残念ながら、このベルトコンベアには知識ベースがないため、ベルト上のどの鉱物のクラスも特定できません。しかし、別の便利な機能があります。それは、現在ベルト上にある鉱物の異なるクラスの数を表示することです。ドワーフたちは各鉱物のクラスを知る必要はなく、同じクラスの山に鉱物を分けるだけでよいため、鉱山にとってはこれで十分であることが分かりました。

ベルトコンベアを使ってドワーフたちがこの課題を解決するのを手伝ってくれますか?

入出力形式

鉱物のクラスは最初に固定されており、行われたクエリには依存しません。

まず、分類する鉱物の数を表す $N$ を含む行を $1$ 行読み込みます。その後、次の $2$ 種類の操作を行うことができます。

  • + id — 識別子 id の鉱物をベルトコンベアの先頭に追加する。
  • - — ベルトコンベアの末尾にある鉱物を取り除く。ベルトが空の場合は何も起こらない。

各操作の後、ベルトコンベアは現在ベルト上にある異なるクラスの数を表す $1$ 行を出力します。

答えを出力するには、まず ! に続けて鉱山内の異なるクラスの数 $k$ を含む行を出力します。次に、各クラスを説明する $k$ 行を出力します。各行には、数値 $c_i$ に続けて、そのクラスに属する $c_i$ 個の鉱物の識別子を含める必要があります。$N$ 個の鉱物はすべて、ちょうど $1$ つのクラスに現れなければなりません。クラスおよび各クラス内の鉱物は任意の順序で出力して構いません。

各操作の後、および答えを出力した後は、必ず出力をフラッシュしてください。数値と +、-、! 記号の間には必ず空白を入れてください。ジャッジからのすべてのデータを読み取る必要があります。

制約

$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 セクションには、サンプルテストとグレーダー grader.cpp を含む A.zip があります。解答をテストするには、コンパイルしてから、テスト名と実行可能ファイルをコンパイル済みの ./grader に渡してください。

./grader [test] [executable]

例:./grader 0b.in ./abc

サンプルグレーダーは公式のものと完全に同じように動作するとは限りません。ただし、どちらも適応型(adaptive)ではありません。

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.