#include <bits/stdc++.h>
using namespace std;
int incearca(int now, vector<int> valori, int n) {
int left_val = 0, right_val = 0, l = now, r;
vector<int> been(n, 0);
if (now == n - 1) r = 0;
else r = now + 1;
while (!been[l] && !been[r]) {
left_val += valori[l];
been[l] = 1;
been[r] = 1;
if (l == 0) l = n - 1;
else l--;
if (r == n - 1) r = 0;
else r++;
}
if (l == 0) l = n - 1;
else l--;
if (!been[l] && n % 2 == 1) left_val += valori[l];
fill(been.begin(), been.end(), 0);
l = now;
if (now == 0) r = n - 1;
else r = now - 1;
while (!been[l] && !been[r]) {
right_val += valori[l];
been[l] = 1;
been[r] = 1;
if (l == n - 1) l = 0;
else l++;
if (r == 0) r = n - 1;
else r--;
}
if (l == n - 1) l = 0;
else l++;
if (!been[l] && n % 2 == 1) right_val += valori[l];
return min(right_val, left_val);
}
int main() {
int n, maximum = -1;
cin >> n;
vector<int> valori(n);
for (int i = 0; i < n; i++) {
cin >> valori[i];
}
for (int i = 0; i < n; i++) {
maximum = max(maximum, incearca(i, valori, n));
}
cout << maximum;
}
# | 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... |