Submission #2771453


Source Code Expand

#include <bits/stdc++.h>
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define pb push_back

using namespace std;
typedef long long int ll;

ll find(ll pref[], int lim, ll val){
	ll l = 0, r = lim;
	while (l < r){
		ll m = (l+r+1)/2;
		if (2*pref[m] <= val) l = m;
		else r = m-1;
	}
	if (l < lim-1){
		ll k = l+1;
		if (abs(2*pref[k]-val) < abs(2*pref[l]-val)) return pref[k];
	}
	return pref[l];
}

ll find2(ll pref[], int lim, ll val, int n){
	ll l = lim+1, r = n-1;
	while(l < r){
		ll m = (l+r+1)/2;
		if (2*(pref[m]-pref[lim]) <= val) l = m;
		else r = m-1;
	}
	if (l < n-2){
		ll k = l+1;
		if (abs(2*(pref[k]-pref[lim])-val) < abs(2*(pref[l]-pref[lim])-val)) return pref[k]-pref[lim];
	}
	return pref[l]-pref[lim];
}

int main(void){
	// #ifndef JUDGE
	// freopen("in.txt", "r", stdin); 
	// #endif
	fast;
	int n; cin >> n;
	ll a[n], pref[n];
	for (int i = 0; i < n; ++i){
		cin >> a[i];
		if (i) pref[i] = a[i] + pref[i-1];
		else pref[i] = a[i];
	}
	ll ans = 1e18;
	for (int i = 1; i < n-2; ++i){
		ll left = pref[i];
		ll one = find(pref, i, left);
		ll two = pref[i] - one;
		ll three = find2(pref, i, pref[n-1]-pref[i], n);
		ll four = pref[n-1]-pref[i]-three;
		ll cur = max({one, two, three, four}) - min({one, two, three, four});
		ans = min(cur, ans);
	}
	cout << ans << '\n';

}

Submission Info

Submission Time
Task D - Equal Cut
User IceKnight1093
Language C++14 (GCC 5.4.1)
Score 600
Code Size 1371 Byte
Status AC
Exec Time 40 ms
Memory 3328 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 3
AC × 43
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask_1_01.txt AC 1 ms 256 KB
subtask_1_02.txt AC 36 ms 3072 KB
subtask_1_03.txt AC 19 ms 1536 KB
subtask_1_04.txt AC 25 ms 2176 KB
subtask_1_05.txt AC 1 ms 256 KB
subtask_1_06.txt AC 5 ms 640 KB
subtask_1_07.txt AC 21 ms 2048 KB
subtask_1_08.txt AC 12 ms 1408 KB
subtask_1_09.txt AC 20 ms 2048 KB
subtask_1_10.txt AC 25 ms 2688 KB
subtask_1_11.txt AC 33 ms 3072 KB
subtask_1_12.txt AC 14 ms 1664 KB
subtask_1_13.txt AC 23 ms 2176 KB
subtask_1_14.txt AC 7 ms 896 KB
subtask_1_15.txt AC 5 ms 640 KB
subtask_1_16.txt AC 16 ms 1920 KB
subtask_1_17.txt AC 15 ms 1664 KB
subtask_1_18.txt AC 2 ms 384 KB
subtask_1_19.txt AC 33 ms 3200 KB
subtask_1_20.txt AC 37 ms 3072 KB
subtask_1_21.txt AC 21 ms 1792 KB
subtask_1_22.txt AC 13 ms 1280 KB
subtask_1_23.txt AC 34 ms 2816 KB
subtask_1_24.txt AC 34 ms 3328 KB
subtask_1_25.txt AC 34 ms 3328 KB
subtask_1_26.txt AC 33 ms 3328 KB
subtask_1_27.txt AC 32 ms 3328 KB
subtask_1_28.txt AC 32 ms 3328 KB
subtask_1_29.txt AC 35 ms 3328 KB
subtask_1_30.txt AC 40 ms 3328 KB
subtask_1_31.txt AC 37 ms 3328 KB
subtask_1_32.txt AC 38 ms 3328 KB
subtask_1_33.txt AC 39 ms 3328 KB
subtask_1_34.txt AC 30 ms 3328 KB
subtask_1_35.txt AC 35 ms 3328 KB
subtask_1_36.txt AC 28 ms 3328 KB
subtask_1_37.txt AC 35 ms 3328 KB