#P16211. [Naq2025]Seesaw跷跷板

[Naq2025]Seesaw跷跷板

题目描述

有若干人坐在一条无限长的跷跷板上。跷跷板可以看作一条以 00 为中心的数轴。每个人有一个重量,并坐在数轴上的某个位置。

一个人对跷跷板产生的力矩等于:

weight×position.\text{weight}\times \text{position}.

当所有人的力矩之和为 00 时,跷跷板处于平衡状态。

每个人都可以沿着跷跷板移动任意实数距离,但不能越过原本紧挨在自己前面或后面的人。换句话说,所有人的相对顺序必须保持不变。允许多个人处在同一个位置,也允许一个人移动多次。

请你求出,为了让跷跷板平衡,所有人移动距离之和的最小值。

输入格式

第一行包含一个整数 nn,表示人数。

接下来 nn 行,每行包含两个整数 p,wp,w,分别表示这个人的位置和重量。

数据满足:

1n105,1\le n\le 10^5, 108p108,-10^8\le p\le 10^8, 1w105.1\le w\le 10^5.

保证所有 pp 互不相同,并且输入中的 pp 按升序给出。

输出格式

输出一个实数,表示使跷跷板平衡所需的最小总移动距离。

如果你的答案与标准答案的绝对误差或相对误差不超过 10610^{-6},则认为正确。

输入输出样例 #1

输入 #1

3
-3 4
3 1
5 1

输出 #1

1.000000

输入输出样例 #2

输入 #2

3
-2 1
1 4
2 4

输出 #2

2.500000