AT_wupc2019_g Teishoku

题目描述

在 W 大学的食堂里,有 \\(N\\) 种套餐可供选择,这些套餐用整数 \\(0, 1, \cdots, N-1\\) 标识。 此时,食堂外已经有 \\(M\\) 个人在排队,等待他们所点的套餐。每个人选择的套餐用序列 \\(A\\) 表示,其中第 \\(i\\) 位顾客点的套餐为 \\(A_i\\)。 为提高工作效率,食堂采取的做法是每次只制作一种套餐,并将其直接提供给所有点了这种套餐且还排在队列中的顾客。在这样的安排中,对于尚未获得套餐的顾客 \\(i\\),如果他的后面有顾客 \\(j\\ (i < j)\\) 也选择了相同的套餐,那么 \\(i\\) 的不满意度将增加 \\(1\\)。 食堂希望找出一种最佳的套餐制作与供应顺序,以使得所有顾客的不满意度总和达到最小。请计算并输出这种最优顺序下的不满意度总和。

输入格式

输入为标准输入,格式如下: ``` N M A_0 A_1 \dots A_{M-1} ```

输出格式

在最佳的套餐提供顺序下,输出所有顾客的不满意度总和的最小值。

说明/提示

- \(1 \leq N \leq 15\) - \(1 \leq M \leq 200000\) - \(0 \leq A_i \leq N-1\) - 所有输入数值均为整数。 ### 示例解释 1 - 如果优先制作并提供套餐 \(0\),则第 \(2\) 位顾客的不满意度会上升 \(2\),而第 \(5\) 位顾客的不满意度不变,总的不满意度因此为 \(2\)。 - 如果优先制作并提供套餐 \(1\),则第 \(1\) 位顾客的不满意度会上升 \(2\),第 \(3\) 和第 \(4\) 位顾客的不满意度各增加 \(1\),总的不满意度达到 \(4\)。 因此,通过先提供套餐 \(0\) 然后提供套餐 \(1\),能够最小化不满意度的总和。 **本翻译由 AI 自动生成**