P17329 [ICPC 2018 Nanjing R] Lagrange the Chef

题目描述

Lagrange 是一名厨师。他提出了若干与食物相关的理论。 在这些理论中,最著名的一个被称为“相容理论”。具体来说,Lagrange 发明了 $10^6$ 道不同的菜肴。然而,有一对菜肴,即 $X$ 和 $Y$,若一前一后品尝(不论顺序),会给用餐体验带来负面影响。Lagrange 将这样的一对菜肴称为“不相容的”。 “相容”的概念也可以扩展到一整套餐食。一顿餐食由若干道菜按特定顺序上菜组成,如果任意相邻两道菜都不是不相容的,则这顿餐食是相容的。 一天,一位客人要求一顿包含 $N$ 道菜的餐食 $a_0, a_1, \cdots, a_{N-1}$,按顺序上菜。由于客人不知道相容理论,他所要求的餐食可能是不相容的。 Lagrange 希望调整菜的顺序,使餐食变得相容,同时使调整后的列表与原始列表差异不大。因此,他将一个“调整步骤”定义为将列表中的一道菜移动到任意其他位置。 你的任务是计算使餐食相容所需的最小调整步数,或判断这是不可能的。

输入格式

第一行包含三个正整数 $N, X, Y$ ($1 \le N \le 5000$,$1 \le X, Y \le 10^6$,$X \ne Y$)。 第二行包含 $N$ 个正整数 $a_0, a_1, \cdots, a_{N-1}$ ($1 \le a_i \le 10^6$)。

输出格式

如果无法使餐食相容,输出 $-1$。不应输出引号。 否则,输出一个整数——使餐食相容所需的最小调整步数。

说明/提示

翻译由 DeepSeek V4 Pro 完成