LYDSY 3293

题目大意

暂无

题目解法

暂无

RTFC

#include <algorithm>
#include <cctype>
#include <cstdio>
#include <cstring>
#include <numeric>
typedef long long int64;
template <typename T>
inline void readInt(T &x)
{
    int ch = x = 0;
    while (!isdigit(ch = getchar()))
        ;
    for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0';
}
int64 *A, *C;
int main()
{
    int n;
    readInt(n);
    A = new int64[n + 10];
    C = new int64[n + 10];
    memset(A, 0, sizeof(int64) * (n + 10));
    memset(C, 0, sizeof(int64) * (n + 10));
    for (int i = 0; i < n; i++) readInt(A[i]);
    int64 tmp = std::accumulate(A, A + n, 0ll) / n;
    for (int i = 1; i < n; i++)
        C[i] = C[i - 1] + tmp - A[i];
    std::nth_element(C, C + (n >> 1), C + n);
    tmp = 0;
    for (int i = 0; i < n; i++)
        tmp += std::abs(C[i] - C[n >> 1]);
    printf("%lld", tmp);
    return 0;
}