Submission #5906818


Source Code Expand

#include "bits/stdc++.h"
#define _overload3(_1,_2,_3,name,...) name
#define _rep(i,n) repi(i,0,n)
#define repi(i,a,b) for(int i=int(a),i##_len=(b);i<i##_len;++i)
#define MSVC_UNKO(x) x
#define rep(...) MSVC_UNKO(_overload3(__VA_ARGS__,repi,_rep,_rep)(__VA_ARGS__))
#define all(c) c.begin(),c.end()
#define mp make_pair
#define write(x) cout<<(x)<<"\n"
using namespace std; typedef long long ll;
typedef vector<int> vi; typedef vector<ll> vll; template<class T>using vv = vector<vector<T>>;
template<class T>vv<T> vvec(size_t n, size_t m, T v) { return vv<T>(n, vector<T>(m, v)); }
template<class T>bool chmax(T& a, const T& b) { return a < b ? a = b, 1 : 0; }
template<class T>bool chmin(T& a, const T& b) { return b < a ? a = b, 1 : 0; }
constexpr int INF = 1 << 29, MOD = int(1e9) + 7; constexpr ll LINF = 1LL << 60;
struct aaa { aaa() { cin.tie(0); ios::sync_with_stdio(0); }; }aaaa;

int main() {
    int N;
    cin >> N;
    vll A(N);
    rep(i, N) cin >> A[i];
    vll sumA(N + 1);
    rep(i, N) sumA[i + 1] = sumA[i] + A[i];
    
    ll sumq[4];
    sumq[0] = A[0], sumq[1] = A[1];
    sumq[2] = A[2], sumq[3] = sumA[N] - sumA[3];
    int q1 = 1;
    int q3 = 3;
    for (; q3 < N - 1; ) {
        if (abs(sumq[2] - sumq[3] + 2 * A[q3]) < abs(sumq[2] - sumq[3])) {
            sumq[2] += A[q3];
            sumq[3] -= A[q3];
            q3++;
        }
        else break;
    }

    ll ans = *max_element(sumq, sumq + 4) - *min_element(sumq, sumq + 4);
    for (int half = 2; half < N - 2; ) {
        sumq[1] += A[half];
        sumq[2] -= A[half];
        half++;
        for (; q1 < half - 1; ) {
            if (abs(sumq[0] - sumq[1] + 2 * A[q1]) < abs(sumq[0] - sumq[1])) {
                sumq[0] += A[q1];
                sumq[1] -= A[q1];
                q1++;
            }
            else break;
        }

        for (; q3 < N - 1; ) {
            if (abs(sumq[2] - sumq[3] + 2 * A[q3]) < abs(sumq[2] - sumq[3])) {
                sumq[2] += A[q3];
                sumq[3] -= A[q3];
                q3++;
            }
            else break;
        }

        ans = min(ans, *max_element(sumq, sumq + 4) - *min_element(sumq, sumq + 4));
    }

    write(ans);
}

Submission Info

Submission Time
Task D - Equal Cut
User myun
Language C++14 (GCC 5.4.1)
Score 600
Code Size 2250 Byte
Status AC
Exec Time 23 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 23 ms 3072 KB
subtask_1_03.txt AC 10 ms 1536 KB
subtask_1_04.txt AC 16 ms 2176 KB
subtask_1_05.txt AC 1 ms 256 KB
subtask_1_06.txt AC 3 ms 640 KB
subtask_1_07.txt AC 13 ms 2048 KB
subtask_1_08.txt AC 7 ms 1408 KB
subtask_1_09.txt AC 12 ms 2048 KB
subtask_1_10.txt AC 14 ms 2688 KB
subtask_1_11.txt AC 18 ms 3072 KB
subtask_1_12.txt AC 9 ms 1664 KB
subtask_1_13.txt AC 13 ms 2176 KB
subtask_1_14.txt AC 5 ms 896 KB
subtask_1_15.txt AC 3 ms 640 KB
subtask_1_16.txt AC 9 ms 1920 KB
subtask_1_17.txt AC 8 ms 1664 KB
subtask_1_18.txt AC 2 ms 384 KB
subtask_1_19.txt AC 15 ms 3200 KB
subtask_1_20.txt AC 23 ms 3200 KB
subtask_1_21.txt AC 11 ms 1792 KB
subtask_1_22.txt AC 9 ms 1280 KB
subtask_1_23.txt AC 18 ms 2816 KB
subtask_1_24.txt AC 19 ms 3328 KB
subtask_1_25.txt AC 19 ms 3328 KB
subtask_1_26.txt AC 19 ms 3328 KB
subtask_1_27.txt AC 18 ms 3328 KB
subtask_1_28.txt AC 18 ms 3328 KB
subtask_1_29.txt AC 19 ms 3328 KB
subtask_1_30.txt AC 19 ms 3328 KB
subtask_1_31.txt AC 19 ms 3328 KB
subtask_1_32.txt AC 19 ms 3328 KB
subtask_1_33.txt AC 19 ms 3328 KB
subtask_1_34.txt AC 16 ms 3328 KB
subtask_1_35.txt AC 16 ms 3328 KB
subtask_1_36.txt AC 15 ms 3328 KB
subtask_1_37.txt AC 16 ms 3328 KB