提出 #2769443
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using ld = long double;
const ll MOD = 1000 * 1000 * 1000 + 7;
const ll INF = (ll)1e18;
struct PrefixSum {
vector<ll> p;
PrefixSum(const vector<ll>& a): p(a.begin(), a.end()) {
for (size_t i = 1; i < p.size(); ++i)
p[i] += p[i - 1];
}
ll get(int l, int r) const {
assert(l <= r);
assert(l >= 0);
assert(r < p.size());
ll ans = p[r];
if (l > 0)
ans -= p[l - 1];
return ans;
}
};
ll get_ans(ll a, ll b, ll c, ll d) {
ll mx = max(max(a, b), max(c, d));
ll mn = min(min(a, b), min(c, d));
if (mn == 0)
return INF;
return mx - mn;
}
int get_pos(const PrefixSum& ps, int lo, int hi) {
assert(hi - lo >= 1);
int l = lo;
int r = hi;
while (r - l > 1) {
int m = (l + r) / 2;
if (ps.get(lo, m) < ps.get(m + 1, hi))
l = m;
else
r = m;
}
return l;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(nullptr);
int n;
cin >> n;
vector<ll> a(n);
for (auto& x : a) {
cin >> x;
}
ll ans = INF;
PrefixSum ps(a);
for (int i = 2; i + 2 <= n; i++) {
int p1 = get_pos(ps, 0, i - 1);
int p2 = get_pos(ps, i, n - 1);
for (int d1 = -5; d1 <= 5; d1++)
for (int d2 = -5; d2 <= 5; d2++) {
int l = p1 + d1;
int m = i;
int r = p2 + d2;
if (l <= 0)
continue;
if (r >= n)
continue;
if (m <= l)
continue;
if (r <= m)
continue;
ans = min(ans, get_ans(ps.get(0, l - 1), ps.get(l, m - 1), ps.get(m, r - 1), ps.get(r, n - 1)));
}
}
cout << ans << endl;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Equal Cut |
| ユーザ | kraskevich |
| 言語 | C++14 (GCC 5.4.1) |
| 得点 | 600 |
| コード長 | 2049 Byte |
| 結果 | AC |
| 実行時間 | 230 ms |
| メモリ | 3456 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 600 / 600 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| sample_01.txt | AC | 1 ms | 256 KiB |
| sample_02.txt | AC | 1 ms | 256 KiB |
| sample_03.txt | AC | 1 ms | 256 KiB |
| subtask_1_01.txt | AC | 1 ms | 256 KiB |
| subtask_1_02.txt | AC | 210 ms | 3072 KiB |
| subtask_1_03.txt | AC | 97 ms | 1536 KiB |
| subtask_1_04.txt | AC | 144 ms | 2176 KiB |
| subtask_1_05.txt | AC | 1 ms | 256 KiB |
| subtask_1_06.txt | AC | 19 ms | 640 KiB |
| subtask_1_07.txt | AC | 131 ms | 2048 KiB |
| subtask_1_08.txt | AC | 46 ms | 1408 KiB |
| subtask_1_09.txt | AC | 126 ms | 2048 KiB |
| subtask_1_10.txt | AC | 101 ms | 2688 KiB |
| subtask_1_11.txt | AC | 202 ms | 3072 KiB |
| subtask_1_12.txt | AC | 57 ms | 1664 KiB |
| subtask_1_13.txt | AC | 137 ms | 2176 KiB |
| subtask_1_14.txt | AC | 28 ms | 896 KiB |
| subtask_1_15.txt | AC | 27 ms | 640 KiB |
| subtask_1_16.txt | AC | 77 ms | 1920 KiB |
| subtask_1_17.txt | AC | 101 ms | 1664 KiB |
| subtask_1_18.txt | AC | 4 ms | 384 KiB |
| subtask_1_19.txt | AC | 208 ms | 3200 KiB |
| subtask_1_20.txt | AC | 214 ms | 3200 KiB |
| subtask_1_21.txt | AC | 110 ms | 1792 KiB |
| subtask_1_22.txt | AC | 71 ms | 1280 KiB |
| subtask_1_23.txt | AC | 185 ms | 2816 KiB |
| subtask_1_24.txt | AC | 153 ms | 3456 KiB |
| subtask_1_25.txt | AC | 150 ms | 3456 KiB |
| subtask_1_26.txt | AC | 143 ms | 3328 KiB |
| subtask_1_27.txt | AC | 132 ms | 3328 KiB |
| subtask_1_28.txt | AC | 143 ms | 3328 KiB |
| subtask_1_29.txt | AC | 228 ms | 3456 KiB |
| subtask_1_30.txt | AC | 229 ms | 3328 KiB |
| subtask_1_31.txt | AC | 228 ms | 3328 KiB |
| subtask_1_32.txt | AC | 228 ms | 3456 KiB |
| subtask_1_33.txt | AC | 228 ms | 3328 KiB |
| subtask_1_34.txt | AC | 150 ms | 3456 KiB |
| subtask_1_35.txt | AC | 230 ms | 3328 KiB |
| subtask_1_36.txt | AC | 124 ms | 3456 KiB |
| subtask_1_37.txt | AC | 226 ms | 3328 KiB |