#include "bits/stdc++.h"
using namespace std;
#define endl '\n'
#define debug(x) cerr << #x << " == " << (x) << '\n';
#define all(x) begin(x), end(x)
using ll = long long;
const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3fLL;
template<typename T>
struct M1 {
using Type = T;
inline const static T Id = numeric_limits<T>::min();
static T op(const T& x, const T& y) { return max(x, y); }
};
template<typename Monoid, bool top_down>
struct MinimumStack {
using M = Monoid;
using T = typename M::Type;
stack<pair<T, T>> st;
T top() const { return st.top().first; }
T minimum() const { return st.empty() ? M::Id : st.top().second; }
void push(T value) {
st.emplace(value, top_down ? M::op(value, minimum()) : M::op(minimum(), value));
}
void pop() { st.pop(); }
bool empty() const { return st.empty(); }
size_t size() const { return size(st); }
};
template<typename Monoid>
struct MinimumQueue {
using M = Monoid;
using T = typename Monoid::Type;
MinimumStack<Monoid, false> in;
MinimumStack<Monoid, true> out;
void move() {
if (out.empty()) while (not in.empty()) {
out.push(in.top());
in.pop();
}
}
T front() { move(); return out.top(); }
T minimum() const { return M::op(out.minimum(), in.minimum()); }
void push(T value) { in.push(value); }
void pop() { move(); out.pop(); }
bool empty() const { return in.empty() && out.empty(); }
size_t size() const { return size(in) + size(out); }
};
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
vector<int> v(n);
for (auto& x : v) cin >> x;
MinimumQueue<M1<int>> mq;
int sum = 0, cnt = n / 2;
for (int i = 1; i < 1 + cnt; ++i) {
sum += v[i];
}
mq.push(sum);
for (int i = 1 + cnt; i < n; ++i) {
sum += v[i] - v[i - cnt];
mq.push(sum);
}
int opt = INF;
for (int i = 0; i < n; ++i) {
opt = min(opt, mq.minimum());
mq.pop();
sum += v[i] - v[(i + n - cnt) % n];
mq.push(sum);
}
int ans = accumulate(all(v), 0) - opt;
cout << ans << endl;
exit(0);
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
320 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
204 KB |
Output is correct |
9 |
Correct |
1 ms |
204 KB |
Output is correct |
10 |
Correct |
1 ms |
204 KB |
Output is correct |
11 |
Correct |
1 ms |
204 KB |
Output is correct |
12 |
Correct |
1 ms |
204 KB |
Output is correct |
13 |
Correct |
1 ms |
204 KB |
Output is correct |
14 |
Correct |
1 ms |
204 KB |
Output is correct |
15 |
Correct |
1 ms |
204 KB |
Output is correct |
16 |
Correct |
1 ms |
204 KB |
Output is correct |
17 |
Correct |
1 ms |
320 KB |
Output is correct |
18 |
Correct |
1 ms |
204 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
320 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
204 KB |
Output is correct |
9 |
Correct |
1 ms |
204 KB |
Output is correct |
10 |
Correct |
1 ms |
204 KB |
Output is correct |
11 |
Correct |
1 ms |
204 KB |
Output is correct |
12 |
Correct |
1 ms |
204 KB |
Output is correct |
13 |
Correct |
1 ms |
204 KB |
Output is correct |
14 |
Correct |
1 ms |
204 KB |
Output is correct |
15 |
Correct |
1 ms |
204 KB |
Output is correct |
16 |
Correct |
1 ms |
204 KB |
Output is correct |
17 |
Correct |
1 ms |
320 KB |
Output is correct |
18 |
Correct |
1 ms |
204 KB |
Output is correct |
19 |
Correct |
1 ms |
204 KB |
Output is correct |
20 |
Correct |
1 ms |
204 KB |
Output is correct |
21 |
Correct |
1 ms |
332 KB |
Output is correct |
22 |
Correct |
1 ms |
332 KB |
Output is correct |
23 |
Correct |
2 ms |
332 KB |
Output is correct |
24 |
Correct |
1 ms |
332 KB |
Output is correct |
25 |
Correct |
2 ms |
332 KB |
Output is correct |
26 |
Correct |
2 ms |
332 KB |
Output is correct |
27 |
Correct |
1 ms |
204 KB |
Output is correct |
28 |
Correct |
1 ms |
316 KB |
Output is correct |
29 |
Correct |
1 ms |
204 KB |
Output is correct |
30 |
Correct |
1 ms |
332 KB |
Output is correct |
31 |
Correct |
1 ms |
332 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
332 KB |
Output is correct |
4 |
Correct |
14 ms |
1248 KB |
Output is correct |
5 |
Correct |
24 ms |
2636 KB |
Output is correct |
6 |
Correct |
32 ms |
3396 KB |
Output is correct |
7 |
Correct |
45 ms |
4092 KB |
Output is correct |
8 |
Correct |
64 ms |
6488 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
320 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
204 KB |
Output is correct |
9 |
Correct |
1 ms |
204 KB |
Output is correct |
10 |
Correct |
1 ms |
204 KB |
Output is correct |
11 |
Correct |
1 ms |
204 KB |
Output is correct |
12 |
Correct |
1 ms |
204 KB |
Output is correct |
13 |
Correct |
1 ms |
204 KB |
Output is correct |
14 |
Correct |
1 ms |
204 KB |
Output is correct |
15 |
Correct |
1 ms |
204 KB |
Output is correct |
16 |
Correct |
1 ms |
204 KB |
Output is correct |
17 |
Correct |
1 ms |
320 KB |
Output is correct |
18 |
Correct |
1 ms |
204 KB |
Output is correct |
19 |
Correct |
1 ms |
204 KB |
Output is correct |
20 |
Correct |
1 ms |
204 KB |
Output is correct |
21 |
Correct |
1 ms |
332 KB |
Output is correct |
22 |
Correct |
1 ms |
332 KB |
Output is correct |
23 |
Correct |
2 ms |
332 KB |
Output is correct |
24 |
Correct |
1 ms |
332 KB |
Output is correct |
25 |
Correct |
2 ms |
332 KB |
Output is correct |
26 |
Correct |
2 ms |
332 KB |
Output is correct |
27 |
Correct |
1 ms |
204 KB |
Output is correct |
28 |
Correct |
1 ms |
316 KB |
Output is correct |
29 |
Correct |
1 ms |
204 KB |
Output is correct |
30 |
Correct |
1 ms |
332 KB |
Output is correct |
31 |
Correct |
1 ms |
332 KB |
Output is correct |
32 |
Correct |
1 ms |
204 KB |
Output is correct |
33 |
Correct |
1 ms |
204 KB |
Output is correct |
34 |
Correct |
1 ms |
332 KB |
Output is correct |
35 |
Correct |
14 ms |
1248 KB |
Output is correct |
36 |
Correct |
24 ms |
2636 KB |
Output is correct |
37 |
Correct |
32 ms |
3396 KB |
Output is correct |
38 |
Correct |
45 ms |
4092 KB |
Output is correct |
39 |
Correct |
64 ms |
6488 KB |
Output is correct |
40 |
Correct |
2 ms |
332 KB |
Output is correct |
41 |
Correct |
3 ms |
460 KB |
Output is correct |
42 |
Correct |
5 ms |
716 KB |
Output is correct |
43 |
Correct |
26 ms |
2752 KB |
Output is correct |
44 |
Correct |
64 ms |
6612 KB |
Output is correct |
45 |
Correct |
13 ms |
1600 KB |
Output is correct |
46 |
Correct |
39 ms |
4064 KB |
Output is correct |
47 |
Correct |
73 ms |
6608 KB |
Output is correct |
48 |
Correct |
78 ms |
6876 KB |
Output is correct |
49 |
Correct |
57 ms |
5968 KB |
Output is correct |
50 |
Correct |
57 ms |
6088 KB |
Output is correct |