CF730E Award Ceremony

题目描述

全伯兰德程序设计竞赛已经结束。共有 $n$ 支参赛队伍参加比赛。就像 ACM-ICPC 一样,比赛结束前一小时,当前结果停止刷新。因此在颁奖典礼时,结果是部分已知的。对于每支队伍,给出 $a_{i}$ —— 第 $i$ 支队伍在比赛最后一小时前获得的分数。此外,评委已经评判过所有最后一小时的提交,并知道了 $d_{i}$ —— 第 $i$ 支队伍在最后一小时获得的分数(这些值可以为负数,表示队伍可能失分)。 比赛开始前,每支队伍都获得了从 $1$ 到 $n$ 的唯一编号。根据比赛规则,分数高的队伍名次更高。如果有两支或以上队伍分数相同,则编号较小的队伍名次更高。因此不会有两支队伍名次相同的情况。 颁奖典礼的过程如下。典礼开始时,大屏幕会显示“距离比赛结束还有一小时”的排名,也就是第 $i$ 支队伍有 $a_{i}$ 分。然后评委依次按某种顺序解冻队伍的结果。当第 $j$ 支队伍被解冻时,其分数从 $a_{j}$ 变为 $a_{j}+d_{j}$。此时,成绩表会变动,该队伍的排名也可能改变。第 $j$ 支队伍成绩被解冻时,现场观众的掌声持续 $|x_{j}-y_{j}|$ 秒,其中 $x_{j}$ 是该队伍解冻前的排名,$y_{j}$ 是解冻后该队伍的排名。例如,如果队伍名次没有变化,则没有掌声。可见,在颁奖典礼期间,每支队伍都会被解冻且仅被解冻一次。 你的任务是找到一种解冻所有队伍的顺序,使得掌声总时长尽可能大。

输入格式

输入的第一行包含一个整数 $n$($1 \leq n \leq 100$),表示队伍数。 接下来的 $n$ 行,每行包含两个整数 $a_{i}$ 和 $d_{i}$($1 \leq a_{i} \leq 100$,$-100 \leq d_{i} \leq 100$),分别表示第 $i$ 支队伍在最后一小时前获得的分数和最后一小时内获得的分数。可能会出现解冻后分数为负数的情况。

输出格式

输出一个整数——在评委可以任意选择解冻顺序的情况下,最大可能的掌声累计时长(秒)。

说明/提示

在第一个样例中,初始排名如下: 1. 队伍 2,52 分 2. 队伍 1,17 分 3. 队伍 4,6 分 4. 队伍 3,1 分 无论按哪种顺序解冻队伍,总掌声时长都是 4 秒。例如,按队伍编号从 1 到 4 的顺序解冻。 当队伍 1 被解冻后,排名如下: 1. 队伍 2,52 分 2. 队伍 4,6 分 3. 队伍 1,3 分 4. 队伍 3,1 分 此时掌声持续 1 秒,因为排名变化的差值为 $|2-3|=1$。 当队伍 2 被解冻后,排名如下: 1. 队伍 2,47 分 2. 队伍 4,6 分 3. 队伍 1,3 分 4. 队伍 3,1 分 队伍 2 的名次未发生变化,掌声持续 0 秒。 当队伍 3 被解冻后,排名如下: 1. 队伍 3,53 分 2. 队伍 2,47 分 3. 队伍 4,6 分 4. 队伍 1,3 分 队伍 3 的名次变化 $|4-1|=3$,掌声持续 3 秒。 最后队伍 4 被解冻,其 $d_{4}=0$,排名未变化。 因此,总掌声时长为 $1+0+3+0=4$ 秒。 由 ChatGPT 5 翻译