Submission #563136

#TimeUsernameProblemLanguageResultExecution timeMemory
563136four_specksHacker (BOI15_hac)C++17
100 / 100
413 ms26372 KiB
#include <bits/stdc++.h>

using namespace std;

inline namespace
{
} // namespace

void solve(const int _test_ = -1)
{
    int n;
    cin >> n;

    int m = (n + 1) / 2;

    vector<long> v(n);
    for (long &x : v)
        cin >> x;

    vector w = v;
    for (int i = 0; i < m; i++)
        w.push_back(v[i]);

    long res = 0;

    multiset<long> ms;
    queue<long> q;
    long sum = 0;
    for (int i = n - m; i < n; i++)
        sum += w[i];
    for (int i = n - m; i < n; i++)
    {
        sum += w[i + m] - w[i];
        q.push(sum);
        ms.insert(sum);
    }
    for (int i = 0; i < n; i++)
    {
        ms.erase(ms.find(q.front()));
        q.pop();
        sum += w[i + m] - w[i];
        q.push(sum);
        ms.insert(sum);

        res = max(res, *ms.begin());
    }

    cout << res << '\n';
}

int main()
{
    ios_base::sync_with_stdio(false), cin.tie(NULL);

    int T_ = 1;
    // cin >> T_;

    for (int t_ = 0; t_ < T_; t_++)
        solve(t_);

    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...