102212024-03-29 16:31:32111Egyengetőcpp17Futási hiba 0/10029ms66656 KiB
#include <bits/stdc++.h>
using namespace std;

#include "grader.h"

#define int long long

template<typename T, unsigned M = UINT_MAX, unsigned S = 4096>
struct FastMap {
	T** a = new T*[M / S]{};

	inline T& operator[](unsigned i) {
		if (a[i / S] == nullptr) {
			a[i / S] = new T[S]{};
		}
		return a[i / S][i % S];
	}
};

struct F{
	int n;
	FastMap<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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Futási hiba29ms66656 KiB
2Futási hiba28ms66420 KiB
subtask20/20
3Futási hiba28ms66184 KiB
4Futási hiba28ms66072 KiB
5Futási hiba28ms65836 KiB
6Futási hiba28ms65832 KiB
7Futási hiba28ms65596 KiB
8Futási hiba28ms65592 KiB
subtask30/20
9Futási hiba28ms65348 KiB
10Futási hiba28ms65120 KiB
11Futási hiba28ms65108 KiB
12Futási hiba28ms64876 KiB
13Futási hiba28ms64864 KiB
14Futási hiba28ms64860 KiB
subtask40/20
15Futási hiba28ms64868 KiB
16Futási hiba28ms64868 KiB
17Futási hiba28ms64864 KiB
18Futási hiba28ms64864 KiB
19Futási hiba28ms64860 KiB
20Futási hiba28ms64856 KiB
subtask50/40
21Futási hiba28ms64852 KiB
22Futási hiba28ms64868 KiB
23Futási hiba28ms64872 KiB
24Futási hiba28ms64860 KiB
25Futási hiba28ms64872 KiB
26Futási hiba28ms64876 KiB