Submission #1222717

#TimeUsernameProblemLanguageResultExecution timeMemory
1222717i_love_springHacker (BOI15_hac)C++20
100 / 100
289 ms18052 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ar array
void solve() {
  int n;
  cin >> n;
  vector<int> a(n * 2 + 1, 0);
  for (int i = 1; i <= n;i++) cin >> a[i], a[i + n] = a[i];
  for (int i = 1; i <= n * 2;i++) {
    a[i] += a[i - 1];
  } 
  multiset<int>ms;
  vector<int> res(n + 1,1e9+5);
  res[0] = 0;
  int m = (n + 1) / 2;
  for (int i = 1; i <= 2 * n;i++) {
    if (i + m - 1 <= 2 * n) ms.insert(a[i + m - 1] - a[i - 1]);
    if (i > m) ms.erase(ms.find(a[i - 1] - a[i - m - 1]));
    int prev = i % n;
    if (prev == 0) prev = n;
    res[prev] = min(res[prev],*ms.begin());
  }
  cout << *max_element(res.begin(),res.end());
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  int t = 1;
  //cin >> t;
  while (t--) {
    solve();
    cout << "\n";
  }
  return 0;
} 
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...