1. 程式人生 > >中位數_環形均分紙牌_CH0807_糖果傳遞

中位數_環形均分紙牌_CH0807_糖果傳遞

直接根據環形均分紙牌性質即可, AC程式碼如下:

//CH0807_糖果傳遞
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std; 
const int MAX = 1e6 + 5;
long long s[MAX], tmp;
int main(){
	int n; scanf("%d", &n);
	for(int i = 1; i <= n; ++i) scanf("%lld", &s[i]), tmp += s[i];
	for(int i = 1; i <= n; ++i) s[i] -= tmp / n, s[i] += s[i - 1];
	nth_element(s + 1, s + n / 2 + 1, s + n + 1);
	for(int i = 1; i <= n; ++i) s[0] += abs(s[i] - s[n / 2 + 1]);
	cout << s[0]  << endl;
	return 0;
}