#include <bits/stdc++.h>
using namespace std;
#include "grader.h"
#define int long long
struct F{
int n;
unordered_map<int,pair<int,int>>t;
F(int n):n(n){
}
void update(int i){
for(int j=i;j<n;j+=j&-j){
int s=j-(j&-j)+1;
int e=j;
t[j].first+=s-i;
t[j].second++;
}
}
int query(int i){
int x=0;
for(int j=i;j;j-=j&-j){
int s=j-(j&-j)+1;
int e=j;
x+=t[j].first+t[j].second*(i-s);
}
return x;
}
};
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N=getN(),K=getK(),M=5e8;
F a(M+1),b(M+1);
auto calc=[&](int x)->int{
return a.query(x)+b.query(M/2-(x+K));
};
for(int i=0;i<N;i++){
int y=Data();
a.update(y);
b.update(M/2-y);
int l=-1e8,h=2e8;
while(h-l>=3){
int m1=l+(h-l)/3;
int m2=h-(h-l)/3;
if(calc(m1)<=calc(m2)){
h=m2;
}
else{
l=m1;
}
}
int ans=1e18;
for(int i=l;i<=h;i++){
ans=min(ans,calc(i));
}
Solution(ans);
}
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 4ms | 2032 KiB | ||||
2 | Elfogadva | 7ms | 2312 KiB | ||||
subtask2 | 0/20 | ||||||
3 | Elfogadva | 19ms | 2780 KiB | ||||
4 | Elfogadva | 37ms | 2740 KiB | ||||
5 | Elfogadva | 54ms | 3000 KiB | ||||
6 | Elfogadva | 71ms | 4216 KiB | ||||
7 | Elfogadva | 108ms | 2728 KiB | ||||
8 | Időlimit túllépés | 3.532s | 3240 KiB | ||||
subtask3 | 20/20 | ||||||
9 | Elfogadva | 182ms | 3300 KiB | ||||
10 | Elfogadva | 166ms | 4952 KiB | ||||
11 | Elfogadva | 167ms | 3948 KiB | ||||
12 | Elfogadva | 172ms | 4300 KiB | ||||
13 | Elfogadva | 173ms | 4388 KiB | ||||
14 | Elfogadva | 174ms | 5224 KiB | ||||
subtask4 | 20/20 | ||||||
15 | Elfogadva | 1.069s | 3644 KiB | ||||
16 | Elfogadva | 1.656s | 16280 KiB | ||||
17 | Elfogadva | 1.809s | 3888 KiB | ||||
18 | Elfogadva | 1.554s | 16016 KiB | ||||
19 | Elfogadva | 1.623s | 5624 KiB | ||||
20 | Elfogadva | 1.613s | 12224 KiB | ||||
subtask5 | 0/40 | ||||||
21 | Időlimit túllépés | 3.517s | 12372 KiB | ||||
22 | Időlimit túllépés | 3.532s | 3860 KiB | ||||
23 | Időlimit túllépés | 3.523s | 3244 KiB | ||||
24 | Időlimit túllépés | 3.519s | 3252 KiB | ||||
25 | Időlimit túllépés | 3.596s | 12540 KiB | ||||
26 | Időlimit túllépés | 3.595s | 14608 KiB |