/ WHOJ / 题库 /

转盘

转盘

题目描述

有一个转盘,如下图,转盘上等分成 \(m\) 个刻度,依次顺时针编号 \(1 \sim m\) 。转盘上有两个按钮,一个为黑色,一个为红色,按动黑色按钮一次转盘上的指针会顺时针转动一格,按动红色按钮一次转盘上的指针会顺时针转动到我们事前确定的刻度 \(x\)。
说明

我们有一组长度为 \(n\) 的序列 \(a[1],a[2],\dots, a[n]\)。起始时指针停在刻度 \(a[1]\),现在我们需要按动两个按钮使指针依次到达 \(a[2],a[3],……,a[n]\)。请编程输出事前确定的刻度 \(x\) 为多少时?按动按钮的次数最少。

格式

输入格式

第一行包含两个整数 \(n\) 和 \(m\)。

第二行包含 \(n\) 个整数 \(a[1],a[2],\cdots,a[n]\)。

输出格式

仅一行包含一个整数,表示按动按钮最少的次数。

样例1

样例输入1

4 6
1 5 1 4

样例输出1

5

样例解释

将 \(x\) 设置为 \(4\),按动红色按钮 \(1\) 次指针从 \(1\) 转到 \(4\),按动黑色按钮 \(1\) 次指针转到 \(5\),再按动黑色按钮 \(2\) 次指针转到 \(1\),最后再按动红色按钮 \(1\) 次指针转到 \(4\),所以按动按钮次数共 \(5\) 次,指针依次从\(1→5→1→4\)。

限制

\(30\%\)的数据: \(n×m ≤ 10^6\);

\(100\%\) 的数据:\(2 ≤ n,m ≤ 10^5,1≤ a[i] ≤m, a[i]≠a[i+1]\)。