#P14669. [ICPC 2025 Seoul R] Bay
[ICPC 2025 Seoul R] Bay
Description
我们有一个网格(点阵)图 ,其中 是沿 轴和 轴的顶点数量,即行数和列数。图 的顶点按行优先顺序从 到 连续编号;从左上角的顶点开始,我们从上到下逐行遍历,在每一行内从左到右遍历。图 1 展示了两个带顶点编号的示例: 和 。
:::align{center}

图 1. 左:网格图 。右:。 :::
我们给定 的一棵生成树 。图 2 左侧展示了 的一棵生成树 。如果我们添加一条不属于 的 的边(称为非树边),那么恰好会创建一个简单环。我们将此环所围成的区域定义为一个 湾。非树边和湾之间存在一一对应关系,即每条非树边恰好对应一个湾。湾的面积定义为该环所围成的 单位方格的数量。图 2 右侧展示了通过分别添加两条非树边 和 所创建的两个湾(分别用蓝色和橙色标记)。注意,由 和 创建的两个湾的面积分别为 和 。
:::align{center}

图 2. 网格 的一棵生成树 以及由 和 创建的两个湾。 :::
给定网格图 的一棵生成树 和一个正整数 ,请编写一个程序,找出所有创建面积为 的湾的非树边,并输出其中按字典序排列的第一条非树边。
Input Format
你的程序需要从标准输入读取数据。输入的第一行包含两个整数 和 ,其中 对应于 ,且 。接下来的 行每行包含两个不同的整数 和 ,表示生成树 的一条边 ,其中 。
Output Format
你的程序需要向标准输出写入数据。第一行应输出创建面积为 的湾的非树边的数量。第二行应输出两个不同的整数 和 (),表示在那些创建面积为 的湾的非树边中,按字典序排列的第一条边 。两条边 和 的字典序定义如下:当且仅当 或 ( 且 ) 时, 排在 之前。如果没有创建面积为 的湾的非树边,则第一行打印 "0",第二行打印两个零 "0 0"。
图 3 展示了两个 的网格图的生成树,它们对应于样例输入和输出。
:::align{center}

图 3. 的两棵生成树,分别对应样例 1 和样例 2。 :::
5 2
1 2
2 3
3 8
4 5
5 10
6 11
7 8
7 12
8 13
9 10
9 14
11 12
11 16
12 17
13 14
14 15
15 20
16 21
17 18
17 22
18 23
19 20
19 24
24 25
2
13 18
5 2
1 2
2 3
3 8
4 5
5 10
6 11
7 8
7 12
8 13
9 10
9 14
11 12
13 14
14 15
15 20
16 17
16 21
17 18
17 22
18 23
19 20
19 24
23 24
24 25
0
0 0
Hint
翻译由 DeepSeek V3 完成
京公网安备 11011102002149号