座位的争执

测试数据来自 system/1245

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

描述

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

格式

输入格式

第一行有三个用空格隔开的正整数n、k、t,它们分别表示总的座位数、实际到场人数和入场券上的最大座位号,它们满足关系n>k>t。

第二行有k个用空格隔开的正整数。这些正整数保证不超过t,且所有不超过t的正整数总会在这些数中出现至少一次。它们表示这k个人的入场券上印的座位号。

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

输出格式

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

样例1

样例输入1

6 5 3
1 2 1 3 2

样例输出1

6

限制

各个测试点1s

提示

样例说明:
假设我们将入场顺序调整为1、1、3、2、2,下面说明此时发生的座位争执次数应该如何计算。

第一个人入场后成功找到1号座位。

第二个人入场后发现自己的入场券上印有的1号座位已经被占,此时发生一次争执;而后该人继续寻找2号座位并就座。

第三个人入场后成功找到3号座位。

第四个人入场后发现2号座位被占,争执后转而寻找3号座位并再次发生争执,直至成功找到4号座位。这里的争执有两次。

第五个人从2号座位开始寻找,接连三次寻找座位失败,最终在5号位置就座。这里一共发生了三次争执。

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

来源

Matrix67原创

南京师范大学算法竞赛之2020年寒假战“疫”系列赛Round5 总第75期赛

未参加
状态
已结束
规则
ACM/ICPC
题目
6
开始于
2020-03-28 13:30
结束于
2020-03-28 17:30
持续时间
4.0 小时
主持人
参赛人数
48