CF1721F.Matching Reduction

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a bipartite graph with n1n_1 vertices in the first part, n2n_2 vertices in the second part, and mm edges. The maximum matching in this graph is the maximum possible (by size) subset of edges of this graph such that no vertex is incident to more than one chosen edge.

You have to process two types of queries to this graph:

  • 11 — remove the minimum possible number of vertices from this graph so that the size of the maximum matching gets reduced exactly by 11 , and print the vertices that you have removed. Then, find any maximum matching in this graph and print the sum of indices of edges belonging to this matching;
  • 22 — query of this type will be asked only after a query of type 11 . As the answer to this query, you have to print the edges forming the maximum matching you have chosen in the previous query.

Note that you should solve the problem in online mode. It means that you can't read the whole input at once. You can read each query only after writing the answer for the last query. Use functions fflush in C++ and BufferedWriter.flush in Java languages after each writing in your program.

输入格式

The first line contains four integers n1n_1 , n2n_2 , mm and qq ( 1n1,n221051 \le n_1, n_2 \le 2 \cdot 10^5 ; 1mmin(n1n2,2105)1 \le m \le \min(n_1 \cdot n_2, 2 \cdot 10^5) ; 1q21051 \le q \le 2 \cdot 10^5 ).

Then mm lines follow. The ii -th of them contains two integers xix_i and yiy_i ( 1xin11 \le x_i \le n_1 ; 1yin21 \le y_i \le n_2 ) meaning that the ii -th edge connects the vertex xix_i in the first part and the vertex yiy_i in the second part. There are no pairs of vertices that are connected by more than one edge.

Then qq lines follow. The ii -th of them contains one integer, 11 or 22 , denoting the ii -th query. Additional constraints on queries:

  • the number of queries of type 11 won't exceed the size of the maximum matching in the initial graph;
  • the number of queries of type 22 won't exceed 33 ;
  • each query of type 22 is preceded by a query of type 11 ;
  • your solution is allowed to read the ii -th query only after printing the answer for the (i1)(i-1) -th query and flushing the output.

输出格式

For a query of type 11 , print the answer in three lines as follows:

  • the first line should contain the number of vertices you remove;
  • the second line should contain the indices of vertices you remove, as follows: if you remove the vertex xx from the left part, print xx ; if you remove the vertex yy from the right part, print y-y (negative index);
  • the third line should contain the sum of indices of edges in some maximum matching in the resulting graph. The edges are numbered from 11 to mm .

For a query of type 22 , print the answer in two lines as follows:

  • the first line should contain the size of the maximum matching;
  • the second line should contain the indices of the edges belonging to the maximum matching. Note that the sum of these indices should be equal to the number you printed at the end of the previous query of type 11 ;

After printing the answer to a query, don't forget to flush the output.

输入输出样例

  • 输入#1

    3 4 4 4
    2 2
    1 3
    2 1
    3 4
    1
    2
    1
    2

    输出#1

    1
    -4
    3
    ===
    2
    1 2
    ===
    1
    2
    2
    ===
    1
    2

说明/提示

In this problem, you may receive the verdict "Idleness Limit Exceeded" since it is in online mode. If it happens, it means that either the output format is wrong, or you don't meet some constraint of the problem. You may treat this verdict as "Wrong Answer".

For your convenience, the output for queries in the example is separated by the line ===. Don't print this line in your program, it is done only to make sure that it's easy to distinguish between answers for different queries in the statement.

首页