1473. 座位的争执

时间限制 1000 ms   内存限制 128 MB

        还记得Matrix67的“非常男女”计划吗?由Matrix67策划的学校大型男女配对活动将在大礼堂隆重举行,学校里许多人即将前来捧场。大礼堂一共有n个座位,为了方便管理,Matrix67对它们从1到n顺序编号。售票工作已经完成,经统计,共有k个人拿到了入场券。由于k< n,因此大礼堂的座位完全足够。每张入场券上都印有座位号,入场者凭入场券对号入座。在这k个人即将陆续入场时,Matrix67发现了一个严重的错误:由于在入场券的销售过程中搞错了大礼堂总的座位数,入场券上印的座位号只有1到t。虽然这t个座位号中的每一个都在入场券中至少出现了一次,但有一个事实不能改变:t< k。也就是说,这k个人中有一些人的入场券上印有相同的座位号。这样,入场时必将发生很多次座位的争执。我们假定,当一个人入场后发现了他该坐的位置上已经有了人,此时这两个人将发生一次争执,争执的结果总是这个人不能夺回座位;此时该人继续寻找下一个座位号并可能再次发生争执,直到找到一个空位置为止。Matrix67必须调整这k个人的入场顺序,使得总的座位争执发生的次数最少。

输入数据

&nbsp &nbsp &nbsp &nbsp 第一行有三个用空格隔开的正整数n、k、t,它们分别表示总的座位数、实际到场人数和入场券上的最大座位号,它们满足关系n> k> t。
&nbsp &nbsp &nbsp &nbsp 第二行有k个用空格隔开的正整数。这些正整数保证不超过t,且所有不超过t的正整数总会在这些数中出现至少一次。它们表示这k个人的入场券上印的座位号。

&nbsp &nbsp &nbsp &nbsp 对于30%的数据,n< =10;
&nbsp &nbsp &nbsp &nbsp 对于50%的数据,n< =1000;
&nbsp &nbsp &nbsp &nbsp 对于100%的数据,n< =100&nbsp 000。

输出数据

&nbsp &nbsp &nbsp &nbsp 输出发生争执的最少次数。

样例输入

复制
6 5 3
1 2 1 3 2
 · · \n
 · · · · \n

样例输出

复制
6
 \n

样例说明

样例说明:
&nbsp &nbsp &nbsp &nbsp 假设我们将入场顺序调整为1、1、3、2、2,下面说明此时发生的座位争执次数应该如何计算。
&nbsp &nbsp &nbsp &nbsp 第一个人入场后成功找到1号座位。
&nbsp &nbsp &nbsp &nbsp 第二个人入场后发现自己的入场券上印有的1号座位已经被占,此时发生一次争执;而后该人继续寻找2号座位并就座。
&nbsp &nbsp &nbsp &nbsp 第三个人入场后成功找到3号座位。
&nbsp &nbsp &nbsp &nbsp 第四个人入场后发现2号座位被占,争执后转而寻找3号座位并再次发生争执,直至成功找到4号座位。这里的争执有两次。
&nbsp &nbsp &nbsp &nbsp 第五个人从2号座位开始寻找,接连三次寻找座位失败,最终在5号位置就座。这里一共发生了三次争执。

&nbsp &nbsp &nbsp &nbsp 这样的入场方案使得总的争执数为6次。可以证明,不存在更好的入场顺序使得发生争执的次数少于6次。

提交

请先 登录

Source

Matrix67原创

© 2024 FAQs Contact About