数学课上的题(加权绝对值连加求最值问题)带公式一套就行,或者用几何推一推也能出来。
但是 90pts,求助……
这么晚了应该没人了吧……
#include<bits/stdc++.h>
using namespace std;
const int NR = 1e5 + 10;
unsigned long long l, sum, s, ans;
int n, pos, x[NR], r[NR];
int main()
{
cin >> l >> n;
for (int i = 1; i <= n; i++)
{
cin >> x[i] >> r[i];
sum += r[i];
}
sum = sum / 2 + 1;
while (s < sum) s += r[++pos];
for (int i = 1; i <= n; i++) ans += 1ll * r[i] * abs(x[i] - x[pos]);
cout << ans << endl;
return 0;
}