#CSP1207. 邪恶的资本家 (money)

    ID: 4574 Type: Default File IO: money 1000ms 256MiB Tried: 17 Accepted: 5 Difficulty: 8 Uploaded By: Tags>CSP-S复赛模拟国庆集训

邪恶的资本家 (money)

题目描述

小 Y 是一个邪恶的资本家,手下有 nn 个被剥削的工人,编号从 11nn

编号为 ii 的工人目前的工资是 aia_i 元。在小 Y 的严格监管下,工人们不能互相告知自己的工资。小 Y 以为好日子会一直这样持续下去,但是工人们越来越感觉到不平等,发现自己被剥削,于是他们决定罢工抗议小 Y !

没有工人的劳动,就没有小 Y 奢侈的生活。于是小 Y 决定以适当的方式提高他们的工资,来让他们停止抗议。一开始,每个工人都是不满意的。小 Y 需要组织几次聊天,每次聊天只会有两个工人参与。 最终的目的是让每个工人都满意,或者只有一个人不满意——此时,将没有人愿意和他一起抗议小 Y 。

为了组织一次聊天,小 Y 需要选出两个当前不满意的工人x,yx,y,然后临时允许他们讨论自己的工资:

  • 如果ax=aya_x=a_y(即工资相同),这两个工人都会觉得自己没有受到不公平的待遇,都会改为满意。

  • 如果ax>aya_x>a_y,那么工人xx会感到满意。但是工人yy会意识到自己受到了不公平的待遇,所以小 Y 需要把他的工资提高到axa_x(即小 Y 要多付给他axaya_x-a_y元,然后把aya_y 改为 axa_x),并且此时工人 yy 仍然不满意

  • 类似地,如果 ay>axa_y>a_x 那么工人 yy 会感到满意。但是小 Y 必须付给工人 xx ayaxa_y-a_x 元,然后把 axa_x 改为 aya_y,并且工人 xx 仍然不满意

但是作为一个邪恶的资本家,小 Y 想知道自己最少需要付给他们多少钱才能达到目标,于是请来精通会计的你来帮他计算一下。

输入格式

money.in 文件读入数据。

第一行包含一个整数 nn,表示员工的个数。

第二行 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n ,代表每个工人初始的工资。

输出格式

输出到 money.out 文件。

一个整数,表示所需付出的最少钱数。

样例 1

4
100 101 1 101
1

你可以先让工人1和工人2对话,工人2会满意,你需要付给工人1元钱,a1a_1 变成 101101

然后你可以让工人1和工人4对话,因为他们的工资一样,所以他们都会满意。

这时只有工人3不满意,你的目的已经达到了。

样例 2

点击链接 ex_money2.inex_money2.out 下载大样例 2 的输入数据和输出数据。

数据范围

对于每个测试点, 保证 1n2×105,1ai1091\le n\le 2\times 10^5, 1\le a_i\le 10^9

子任务 分数 附加约束条件
11 1010 n10n\le 10
22 1515 ai10a_i\le 10
33 2020 所有 aia_i 都不相同
44 2525 n1000n\le 1000
55 3030 n2×105n\le 2\times 10^5