Submission #3220258
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define DUMP(x) cerr << #x << "=" << x << endl
#define DUMP2(x, y) cerr<<"("<<#x<<", "<<#y<<") = ("<<x<<", "<<y<<")"<< endl
#define BINARY(x) static_cast<bitset<16> >(x)
#define rep(i,n) for(int i=0;i<(int)(n);i++)
#define REP(i,m,n) for (int i=m;i<(int)(n);i++)
#define in_range(x, y, w, h) (0<=(int)(x) && (int)(x)<(int)(w) && 0<=(int)(y) && (int)(y)<(int)(h))
#define ALL(a) (a).begin(),(a).end()
typedef long long ll;
const int INF = 1e9;
const ll INFLL = 1e18;
typedef pair<int, int> PII;
typedef vector<vector<int>> Graph;
int dx[4]={0, -1, 1, 0}, dy[4]={-1, 0, 0, 1};
int main()
{
ios::sync_with_stdio(false);
int N; cin >> N;
vector<ll> A(N); rep(i, N) cin >> A[i];
vector<ll> sum(N+1);
rep(i, N) sum[i+1] = sum[i] + A[i];
ll ans = INFLL;
for (int b2=1; b2<N-2; b2++) {
int b1 = -1;
{
int ok = 0, ng = b2 - 1;
while (abs(ok - ng) > 1) {
int mid = (ok + ng) / 2;
ll s1 = sum[mid+1], s2 = sum[b2+1] - sum[mid+1];
(s1 <= s2 ? ok : ng ) = mid;
}
ll s1 = sum[ok+1], s2 = sum[b2+1] - sum[ok+1];
ll ss1 = sum[ng+1], ss2 = sum[b2+1] - sum[ng+1];
b1 = (abs(s2-s1) < abs(ss2-ss1) ? ok : ng);
}
int b3 = -1;
{
int ok = b2+1, ng = N - 1;
while (abs(ok - ng) > 1) {
int mid = (ok + ng) / 2;
ll s1 = sum[mid+1] - sum[b2+1], s2 = sum[N] - sum[mid+1];
(s1 <= s2 ? ok : ng ) = mid;
}
ll s1 = sum[ok+1] - sum[b2+1], s2 = sum[N] - sum[ok+1];
ll ss1 = sum[ng+1] - sum[b2+1], ss2 = sum[N] - sum[ng+1];
b3 = (abs(s2-s1) < abs(ss2-ss1) ? ok : ng);
}
ll s1 = sum[b1+1] - sum[0];
ll s2 = sum[b2+1] - sum[b1+1];
ll s3 = sum[b3+1] - sum[b2+1];
ll s4 = sum[N] - sum[b3+1];
// if (ans > max({s1, s2, s3, s4}) - min({s1, s2, s3, s4})) {
// cerr << "b1, b2, b3 = " << b1 << " " << b2 << " " << b3 << endl;
// cerr << "s1, s2, s3, s4 = " << s1 << " " << s2 << " " << s3 << " " << s4 << endl;
// }
ans = min(ans, max({s1, s2, s3, s4}) - min({s1, s2, s3, s4}));
}
cout << ans << endl;
}
Submission Info
Submission Time |
|
Task |
D - Equal Cut |
User |
OUDON |
Language |
C++14 (GCC 5.4.1) |
Score |
600 |
Code Size |
2396 Byte |
Status |
AC |
Exec Time |
59 ms |
Memory |
3456 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
600 / 600 |
Status |
|
|
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 |
58 ms |
3072 KB |
subtask_1_03.txt |
AC |
25 ms |
1536 KB |
subtask_1_04.txt |
AC |
39 ms |
2176 KB |
subtask_1_05.txt |
AC |
1 ms |
256 KB |
subtask_1_06.txt |
AC |
7 ms |
640 KB |
subtask_1_07.txt |
AC |
34 ms |
2048 KB |
subtask_1_08.txt |
AC |
20 ms |
1408 KB |
subtask_1_09.txt |
AC |
33 ms |
2048 KB |
subtask_1_10.txt |
AC |
44 ms |
2688 KB |
subtask_1_11.txt |
AC |
52 ms |
3072 KB |
subtask_1_12.txt |
AC |
24 ms |
1664 KB |
subtask_1_13.txt |
AC |
35 ms |
2176 KB |
subtask_1_14.txt |
AC |
11 ms |
896 KB |
subtask_1_15.txt |
AC |
7 ms |
640 KB |
subtask_1_16.txt |
AC |
28 ms |
1920 KB |
subtask_1_17.txt |
AC |
24 ms |
1664 KB |
subtask_1_18.txt |
AC |
2 ms |
384 KB |
subtask_1_19.txt |
AC |
51 ms |
3200 KB |
subtask_1_20.txt |
AC |
59 ms |
3200 KB |
subtask_1_21.txt |
AC |
28 ms |
1792 KB |
subtask_1_22.txt |
AC |
19 ms |
1280 KB |
subtask_1_23.txt |
AC |
48 ms |
2816 KB |
subtask_1_24.txt |
AC |
58 ms |
3328 KB |
subtask_1_25.txt |
AC |
57 ms |
3456 KB |
subtask_1_26.txt |
AC |
57 ms |
3456 KB |
subtask_1_27.txt |
AC |
56 ms |
3456 KB |
subtask_1_28.txt |
AC |
57 ms |
3328 KB |
subtask_1_29.txt |
AC |
58 ms |
3328 KB |
subtask_1_30.txt |
AC |
58 ms |
3456 KB |
subtask_1_31.txt |
AC |
58 ms |
3456 KB |
subtask_1_32.txt |
AC |
57 ms |
3456 KB |
subtask_1_33.txt |
AC |
58 ms |
3328 KB |
subtask_1_34.txt |
AC |
54 ms |
3456 KB |
subtask_1_35.txt |
AC |
55 ms |
3328 KB |
subtask_1_36.txt |
AC |
53 ms |
3456 KB |
subtask_1_37.txt |
AC |
54 ms |
3328 KB |