P0492

[AHOI2008]逆序对

[AHOI2008]逆序对

小可可和小卡卡想到 Y 岛上旅游,但是他们不知道 Y 岛有多远。好在,他们找到一本古老的书,上面是这样说的:

下面是 NN 个正整数,每个都在 1∼K1\sim K 之间。如果有两个数 AA 和 BB,AA 在 BB 左边且 A>BA>B,我们就称这两个数为一个「逆序对」。你数一数下面的数字里有多少个逆序对,你就知道 Y 岛离这里的距离是多少千米了。

比如说,4 2 1 3 34\ 2\ 1\ 3\ 3 里面包含了 55 个逆序对:(4,2),(4,1),(4,3),(4,3),(2,1)(4,2), (4,1), (4,3), (4,3), (2,1)。

可惜的是,由于年代久远,这些数字里有一部分已经模糊不清了。为了方便记录,小可可用 −1-1 表示它们。比如说,4 2 −1 −1 34\ 2\ -1\ -1\ 3 可能原来是 4 2 1 3 34\ 2\ 1\ 3\ 3,也可能是 4 2 4 4 34\ 2\ 4\ 4\ 3,也可能是别的样子。

小可可希望知道,根据他们看清楚的这部分数字,能不能推断出这些数字里最少能有多少个逆序对。

输入格式

第一行两个正整数 NN 和 KK。

第二行 NN 个整数,每个都是 −1-1 或是一个在 1∼K1\sim K 之间的数。

输出格式

一个正整数,即这些数字里最少的逆序对个数。

样例输入

5 4
4 2 -1 -1 3

样例输出

4

样例解释

4 2 4 4 34\ 2\ 4\ 4\ 3 中有 44 个逆序对。当然,也存在其它方案得到 44 个逆序对。

数据范围

  • 对于 100%100\% 的数据,N≤10000N\le 10000,K≤100K\le 100;
  • 对于 60%60\% 的数据,N≤100N\le 100;
  • 对于 40%40\% 的数据,−1-1 出现不超过两次。

来源与许可

本题为 AHOI 2008 试题「逆序对」,题面与测试数据整理自 BZOJ 1831。

样例 1

输入

5 4
4 2 -1 -1 3

输出

4