省略
省略
C++に変換後のコードはこちら
int N;
int Y[1d5];
ll res1[100001], res2[100001];
void solve(ll res[]){
int i;
ll mid;
ll cnt1 = 0, cnt2 = 0;
ll sum1 = 0, sum2 = 0;
rep(i,N){
if(i%2==0){
cnt2++;
sum2+=Y[i];
} else {
cnt1++;
sum1+=Y[i/2];
sum2+=Y[i]-Y[i/2];
}
mid = Y[i/2];
res[i+1] = (mid*cnt1 - sum1) + (sum2 - mid*cnt2);
}
}
{
int i;
ll res;
rd(N,Y(N));
sort(Y, Y+N);
if(Y[0]==Y[N-1]){
res = 1;
} else {
solve(res1);
reverse(Y,Y+N);
rep(i,N) Y[i] *= -1;
solve(res2);
res = ll_inf;
rep(i,1,N) res <?= res1[i] + res2[N-i];
}
wt(res);
}
Current time: 2024年05月06日09時50分26秒
Last modified: 2019年07月06日12時09分53秒 (by laycrs)
Tags: Competitive_Programming_Incomplete yukicoder
トップページに戻る
Logged in as: unknown user (not login)