有n个小朋友坐成一圈,每人有a[i]个糖果。
每人只能给左右两人传递糖果。
每人每次传递一个糖果代价为1。
求使所有人获得均等糖果的最小代价。
输入格式
第一行输入一个正整数n,表示小朋友的个数。
接下来n行,每行一个整数a[i],表示第i个小朋友初始得到的糖果的颗数。
输出格式
输出一个整数,表示最小代价。
数据范围
1≤n≤1000000
数据保证一定有解。
输入样例:
4
1
2
5
4
输出样例:
4
思路&&解题过程:
注:中位数性质(几何意义):中位数到所有点的距离之和最小(选取一点,使其到所有点的距离之和最小,这个点即为中位数)
完整代码:
#include <iostream>
#include <algorithm>
#define int long long
using namespace std;
const int maxn=1e6+5;
int n,a[maxn],b[maxn];
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n;
int sum=0