Submission #2874989


Source Code Expand

#include <algorithm>
#include <cmath>
#include <cstring>
#include <iostream>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>

const int MOD = 1e9 + 7;
const int iINF = 2147483647;
const long long int llINF = 9223372036854775807;

using namespace std;
using ll = long long int;
using P = pair<int, int>;
using edge = struct {
  int to;
  int cost;
};
#define REP(i, n) for (ll i = 0; i < (n); i++)
#define FOR(i, n, m) for (ll i = (n); i < (m); i++)
#define ALL(a) (a).begin(), (a).end()
#define MAX(vec) *std::max_element(vec.begin(), vec.end())
#define MIN(vec) *std::min_element(vec.begin(), vec.end())
#define MAXI(vec)                                                              \
  std::distance(vec.begin(), *std::max_element(vec.begin(), vec.end()))
#define MINI(vec)                                                              \
  std::distance(vec.begin(), *std::min_element(vec.begin(), vec.end()))

int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};

template <typename T, typename U> U READ(ll V, T a, U b) {
  REP(i, V) {
    cin >> a;
    b.push_back(a);
  }
  return b;
}

int main() {
  ll N = 0;
  vector<ll> A;
  vector<unsigned long long int> B;
  unsigned long long int sum = 0;
  ll po = 0;
  cin >> N;
  REP(i, N) {
    cin >> po;
    A.push_back(po);
    sum += po;
    B.push_back(sum);
  }
  ll mi = llINF;
  FOR(i, 1, N - 1) {
    ll left = B[i];
    ll right = B[N - 1] - B[i];
    ll lh = left / 2, rh = right / 2;
    ll l1 = lower_bound(B.begin(), B.begin() + i, lh) - B.begin();
    ll l2 = lower_bound(B.begin() + i + 1, B.end(), left + rh) - B.begin();
    ll w[2] = {0, -1};
    REP(k, 4) {
      vector<ll> pa(4);
      pa[0] = B[l1 + w[k % 2]];
      pa[1] = B[i] - B[l1 + w[k % 2]];
      pa[2] = B[l2 + w[k / 2]] - B[i];
      pa[3] = B[N - 1] - B[l2 + w[k / 2]];
      if (MIN(pa) == 0 || (l1 == 0 && k % 2 == 1) || (l1 == i && k % 2 == 0) ||
          (l2 == i + 1 && k / 2 == 1) || (l2 == N - 1 && k / 2 == 0)) {
        continue;
      }
      mi = min(mi, MAX(pa) - MIN(pa));
    }
  }
  cout << mi << endl;

  return 0;
}

Submission Info

Submission Time
Task D - Equal Cut
User grayf
Language C++14 (GCC 5.4.1)
Score 600
Code Size 2224 Byte
Status AC
Exec Time 117 ms
Memory 3692 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 116 ms 3564 KB
subtask_1_03.txt AC 46 ms 2036 KB
subtask_1_04.txt AC 79 ms 2412 KB
subtask_1_05.txt AC 1 ms 256 KB
subtask_1_06.txt AC 12 ms 892 KB
subtask_1_07.txt AC 59 ms 2284 KB
subtask_1_08.txt AC 33 ms 2036 KB
subtask_1_09.txt AC 57 ms 2156 KB
subtask_1_10.txt AC 70 ms 3564 KB
subtask_1_11.txt AC 92 ms 3564 KB
subtask_1_12.txt AC 39 ms 2036 KB
subtask_1_13.txt AC 63 ms 2284 KB
subtask_1_14.txt AC 19 ms 1276 KB
subtask_1_15.txt AC 13 ms 892 KB
subtask_1_16.txt AC 37 ms 2036 KB
subtask_1_17.txt AC 36 ms 2036 KB
subtask_1_18.txt AC 3 ms 384 KB
subtask_1_19.txt AC 76 ms 3564 KB
subtask_1_20.txt AC 117 ms 3564 KB
subtask_1_21.txt AC 51 ms 2036 KB
subtask_1_22.txt AC 39 ms 1396 KB
subtask_1_23.txt AC 86 ms 3564 KB
subtask_1_24.txt AC 87 ms 3564 KB
subtask_1_25.txt AC 87 ms 3564 KB
subtask_1_26.txt AC 88 ms 3564 KB
subtask_1_27.txt AC 92 ms 3564 KB
subtask_1_28.txt AC 92 ms 3564 KB
subtask_1_29.txt AC 95 ms 3564 KB
subtask_1_30.txt AC 98 ms 3564 KB
subtask_1_31.txt AC 95 ms 3692 KB
subtask_1_32.txt AC 97 ms 3564 KB
subtask_1_33.txt AC 97 ms 3564 KB
subtask_1_34.txt AC 72 ms 3564 KB
subtask_1_35.txt AC 82 ms 3564 KB
subtask_1_36.txt AC 72 ms 3564 KB
subtask_1_37.txt AC 82 ms 3564 KB