#26. [ABC430D] Neighbor Distance

[ABC430D] Neighbor Distance

点我进入原题提交测试

题目描述

有一条数轴,最初0号人独自站在坐标0处。

从现在开始,编号为 1,2,,N1,2,\dots,N 的人依次到达,并站在数轴上。第 ii 个人会站在坐标 XiX_i 处,这里 Xi1X_i \geq 1,并且每个人的 XiX_i 互不相同。

每次有新的人到达时,请回答以下问题:

  • 假设当前有 r+1r+1 个人(编号为 0,1,,r0,1,\dots,r)站在数轴上。
  • 对于每个人 ii,定义 did_i 为他到最近的其他人的距离。
    • 更正式地, $d_i = \min_{0 \leq j \leq r,\, j \neq i} |X_i - X_j|$。
  • dd 的总和,即 i=0rdi\sum_{i=0}^r d_i

输入格式

输入从标准输入读取,格式如下:

N X1 X2  XNN \ X_1 \ X_2 \ \dots \ X_N

输出格式

输出共 NN 行。
ii 行(1iN1 \leq i \leq N)应在第 ii 个人到达时输出问题的答案。

10
5 2 7 4 108728325 390529120 597713292 322456626 845148281 812604915
10
7
8
8
108728326
390529121
523096670
452057486
699492475
517144218

说明/提示

样例解释 1

本样例中共有 1010 个人到来。
44 个人的详细过程如下:

  • 当第 11 个人到达时,当前坐标为 0,50,5
    • 所需答案为 5+5=105+5=10
  • 当第 22 个人到达时,当前坐标为 0,2,50,2,5
    • 所需答案为 2+2+3=72+2+3=7
  • 当第 33 个人到达时,当前坐标为 0,2,5,70,2,5,7
    • 所需答案为 2+2+2+2=82+2+2+2=8
  • 当第 44 个人到达时,当前坐标为 0,2,4,5,70,2,4,5,7
    • 所需答案为 2+2+1+1+2=82+2+1+1+2=8

数据范围

  • 所有输入的值均为整数。
  • 1N5×1051 \leq N \leq 5 \times 10^5
  • 1Xi1091 \leq X_i \leq 10^9
  • iji \neq j,则 XiXjX_i \neq X_j