AT_agc023_d.[AGC023D] Go Home

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有 NN 栋公寓楼排成一条数轴,每栋楼编号为 11 到 NN。第 ii 栋公寓楼位于坐标 XiX_i。AtCoder 公司位于坐标 SS。所有 AtCoder 公司的员工都住在这 NN 栋公寓中的某一栋。住在第 ii 栋公寓的员工人数为 PiP_i。

现在,所有员工准备同时回家。他们因为工作很累,都希望乘坐公司拥有的巴士回家。公司只有一辆巴士,但可以容纳所有员工。这辆巴士会载着所有员工,从坐标 SS 出发,并按照如下规则行驶:

  • 所有乘客(巴士为自动驾驶,无司机)投票决定向正方向还是负方向前进。每位员工有一票,不能弃权。得票多的方向前进 11 单位距离。如果票数相同,则向负方向前进。如果移动后的位置有公寓楼,则该楼的所有住户下车。
  • 只要巴士上还有员工,就重复上述操作。

具体例子请参考样例 11 的说明。

巴士每前进 11 单位距离需要 11 秒。投票和下车所需时间可忽略不计。

每位员工都会选择使自己下车所需时间最短的投票方式。更严格地说,在每次投票时,每位员工都会考虑,巴士若向哪个方向前进,自己能更快回家(假设之后所有人都采用最优策略)。员工会基于这些信息做出最优选择。如果无论巴士向哪个方向前进,自己回家的时间都一样,则投票给负方向。

请你计算,从巴士出发到最后一名员工下车所需的总时间。已知给定的公寓位置、住户人数和巴士位置时,巴士的行驶路线是唯一确定的。此外,可以证明所有员工都能在有限时间内回家。

输入格式

输入通过标准输入给出,格式如下:

NN SS X1X_1 P1P_1 X2X_2 P2P_2 ⋯\cdots XNX_N PNP_N

输出格式

输出从巴士出发到最后一名员工下车所需的总时间。

输入输出样例

  • 输入#1

    3 2
    1 3
    3 4
    4 2

    输出#1

    4
  • 输入#2

    6 4
    1 10
    2 1000
    3 100000
    5 1000000
    6 10000
    7 100

    输出#2

    21
  • 输入#3

    15 409904902
    94198000 15017
    117995501 7656764
    275583856 313263626
    284496300 356635175
    324233841 607
    360631781 148
    472103717 5224
    497641071 34695
    522945827 816241
    554305668 32
    623788284 22832
    667409501 124410641
    876731548 12078
    904557302 291749534
    918215789 5

    输出#3

    2397671583

说明/提示

限制条件

  • 1≤N≤1051 \leq N \leq 10^5
  • 1≤S≤1091 \leq S \leq 10^9
  • 1≤X1<X2<⋯<XN≤1091 \leq X_1 < X_2 < \cdots < X_N \leq 10^9
  • Xi≠SX_i \neq S(1≤i≤N1 \leq i \leq N)
  • 1≤Pi≤1091 \leq P_i \leq 10^9(1≤i≤N1 \leq i \leq N)
  • 所有输入均为整数。

样例解释 1

假设巴士最初向负方向移动,则巴士坐标变化为 2→12 \to 1,第 11 栋公寓的住户下车。之后巴士的移动路线很明显,会一直向正方向移动。因此,若最初向负方向移动,巴士坐标变化为 2→1→2→3→42 \to 1 \to 2 \to 3 \to 4,第 11、22、33 栋公寓住户分别在 11 秒、33 秒、44 秒下车。

若最初向正方向移动,则巴士坐标变化为 2→32 \to 3,第 22 栋公寓住户下车。之后巴士会转向第 11 栋公寓,因为第 11 栋住户人数多于第 33 栋。巴士到达第 11 栋后,再前往第 33 栋。因此,若最初向正方向移动,巴士坐标变化为 2→3→2→1→2→3→42 \to 3 \to 2 \to 1 \to 2 \to 3 \to 4,第 11、22、33 栋公寓住户分别在 33 秒、11 秒、66 秒下车。

因此,第 11、33 栋住户会选择让巴士最初向负方向移动,第 22 栋住户会选择正方向。第 11、33 栋住户共 3+2=53+2=5 人,多于第 22 栋的 44 人。因此,巴士最初会向负方向移动,坐标变化为 2→1→2→3→42 \to 1 \to 2 \to 3 \to 4。

样例解释 2

由于各公寓住户人数相差极大,巴士总是会朝住户最多的公寓方向前进。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页