#agc062f. [agc062_f]Preserve Distinct
[agc062_f]Preserve Distinct
问题描述
有 副牌,每张牌上写了一个介于 和 (包括 和 )之间的整数。第 副牌()有 张牌,从上往下依次写的数字是 。
初始时,牌上的数字满足以下条件:
- 对于每个整数 ,恰好有两张数字为 的牌,分别在两个不同的牌堆里。
- 所有牌堆的顶部牌上的数字两两不同。
我们可以对这 副牌执行以下操作:
- 选择一个还有牌的牌堆,将顶部的牌弃掉。在弃掉后,所有还有牌的牌堆的顶部牌上的数字仍然两两不同。
确定最多能进行多少次这样的操作。
约束条件
- 对于每个整数 ,恰好有两对 使得 ,且两个 的值不同。
- 两两不同。
- 所有输入的值都是整数。
输入
输入以以下格式从标准输入读取:
输出
打印答案。
示例输入 1
2 4
4 1 2 3 4
4 3 2 1 4
示例输出 1
1
如果你首先对第一堆牌执行操作,这堆牌上的数字将按顺序变成 。在此之后,你不能再对第一堆牌执行操作,因为第一堆和第二堆的顶部牌都会是 。同样地,你也不能对第二堆牌执行操作。因此,如果你从第一堆牌开始执行操作,你只能执行一次。
即使你从第二堆牌开始执行操作,你也只能执行一次。因此,答案是 。
示例输入 2
4 6
2 6 4
3 2 5 3
4 3 1 5 6
3 4 1 2
示例输出 2
12
通过正确操作,可以弃掉所有的牌。
示例输入 3
3 3
2 1 2
2 2 3
2 3 1
示例输出 3
0
有些情况下无法进行任何操作。
示例输入 4
12 40
4 35 39 11 21
7 31 29 16 15 30 32 34
4 21 27 38 40
11 17 28 26 23 33 22 3 36 8 1 20
1 30
4 40 38 24 6
8 8 36 9 10 5 7 20 4
10 5 10 9 3 22 33 23 26 28 17
4 15 16 29 31
11 19 13 12 18 25 2 39 35 7 14 37
3 4 1 14
13 24 27 11 2 25 18 12 13 19 32 37 6 34
示例输出 4
53