#include <bits/stdc++.h>
int main() {
int n;
std::cin >> n;
std::vector<int> a(n + 1);
for(int i = 1; i <= n; i++) {
std::cin >> a[i];
}
std::vector<int> pref(n + 2);
for(int i = 1; i <= n; i++) {
pref[i] = pref[i - 1] + a[i];
}
std::function<int(int, int)> sum = [&] (int l, int r) {
if(l > r) {
return 0;
}
else {
return pref[r] - pref[l - 1];
}
};
int ans = 0;
for(int i = 1; i <= n; i++) {
int mn = 1e18;
int k = (n + 1) / 2;
for(int j = i; j >= std::max(1, i - k + 1); j--) {
mn = std::min(mn, sum(j, i) + sum(i + 1, k + j - 1));
}
for(int j = i; j <= std::min(n, i + k - 1); j++) {
mn = std::min(mn, sum(i, j) + sum(j + 1 - k, i - 1));
}
if(k >= i) {
for(int j = i; j <= std::min(n, i + k - 2); j++) {
mn = std::min(mn, sum(1, i) + sum(i, j) + sum(j + n - k + 1, n));
}
}
if(k >= n - i + 1) {
for(int j = i; j >= std::max(1, i - k + 2); j--) {
mn = std::min(mn, sum(j, i) + sum(i + 1, n) + sum(1, k - n + j - 1));
}
}
ans = std::max(ans, mn);
}
std::cout << ans;
}
컴파일 시 표준 에러 (stderr) 메시지
hac.cpp: In function 'int main()':
hac.cpp:24:14: warning: overflow in conversion from 'double' to 'int' changes value from '1.0e+18' to '2147483647' [-Woverflow]
24 | int mn = 1e18;
| ^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |