#P14219. [ICPC 2024 Kunming I] 阻止城堡 2

    ID: 14075 Type: RemoteJudge 3000ms 1024MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>2024Special JudgeICPC昆明

[ICPC 2024 Kunming I] 阻止城堡 2

题目描述

一块有 10910^9 行和 10910^9 列的棋盘上放着 nn 座城堡与 mm 个障碍物。每座城堡或每个障碍物恰好占据一个格子,且被占据的格子两两不同。两座城堡可以互相攻击,若它们位于同一行或同一列,且它们之间没有障碍物或其它城堡。更正式地,令 (i,j)(i, j) 表示位于第 ii 行第 jj 列的格子,位于 (i1,j1)(i_1, j_1)(i2,j2)(i_2, j_2) 的两座城堡可以互相攻击,若以下条件中有一条成立:

  • i1=i2i_1 = i_2,且对于所有 min(j1,j2)<j<max(j1,j2)\min(j_1, j_2) < j < \max(j_1, j_2),不存在位于 (i1,j)(i_1, j) 的障碍物或城堡。
  • j1=j2j_1 = j_2,且对于所有 min(i1,i2)<i<max(i1,i2)\min(i_1, i_2) < i < \max(i_1, i_2),不存在位于 (i,j1)(i, j_1) 的障碍物或城堡。

您需要从棋盘上移除 kk 个障碍物,但您不希望太多城堡可以互相攻击。从棋盘上移除恰好 kk 个障碍物之后,最小化可以互相攻击的城堡对数。

输入格式

有多组测试数据。第一行输入一个整数 TT 表示测试数据组数,对于每组测试数据:

第一行输入三个整数 nnmmkk1n,m1051 \le n, m \le 10^51km1 \le k \le m)表示城堡的数量,障碍物的数量,以及您需要移除的障碍物的数量。

对于接下来 nn 行,第 ii 行输入两个整数 rir_icic_i1ri,ci1091 \le r_i, c_i \le 10^9),表示第 ii 座城堡位于第 rir_i 行第 cic_i 列。

对于接下来 mm 行,第 ii 行输入两个整数 rir'_icic'_i1ri,ci1091 \le r'_i, c'_i \le 10^9),表示第 ii 个障碍物位于第 rir'_i 行第 cic'_i 列。

保证被占据的格子两两不同。同时保证所有数据 nn 之和与 mm 之和均不超过 10510^5

输出格式

每组数据首先输出一行一个整数,表示恰好移除 kk 个障碍物之后,最少有几对城堡可以互相攻击。接下来输出一行 kk 个不同的由单个空格分隔的整数 b1,b2,,bkb_1, b_2, \cdots, b_k1bim1 \le b_i \le m),表示您移除的障碍物的编号。如果有多种合法答案,您可以输出任意一种。

3
8 6 4
1 3
2 1
2 6
4 1
4 7
6 1
6 3
6 6
2 3
3 1
4 3
4 6
5 2
6 4
3 2 1
10 12
10 10
10 11
1 4
1 5
1 3 2
1 1
2 1
2 2
2 3
4
6 3 2 5
2
1
0
1 2

提示

对于第一组样例数据,左边的图片展示了原本的棋盘,右边的图片展示了移除 44 个障碍物之后的棋盘。在移除障碍物之后,可以互相攻击的城堡对有:第 22 和第 44 座城堡,第 44 和第 66 座城堡,第 66 和第 77 座城堡,第 77 和第 88 座城堡。

:::align{center} :::

对于第三组样例数据,由于只有 11 座城堡,不存在可以互相攻击的城堡对。