Submission #1276331

#TimeUsernameProblemLanguageResultExecution timeMemory
1276331vk3601hHacker (BOI15_hac)C++20
100 / 100
388 ms18060 KiB
#include <bits/stdc++.h> using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n; cin >> n; vector<int> values(2 * n + 1); values[0] = 0; for (int i = 1; i <= n; i++){ cin >> values[i]; values[n + i] = values[i]; } for (int i = 1; i <= 2 * n; i++) values[i] += values[i - 1]; int win_size = (n + 1) / 2; multiset<int> totals; vector<int> res(n + 1, INT_MAX); for (int i = 1; i <= 2 * n; i++){ if (i + win_size - 1 <= 2 * n) totals.insert(values[i + win_size - 1] - values[i - 1]); if (i > win_size) totals.erase(totals.find(values[i - 1] - values[i - 1 - win_size])); int real_pos = (i - 1) % n + 1; res[real_pos] = min(res[real_pos], *totals.begin()); } int ans = 0; for (int i = 1; i <= n; i++) ans = max(ans, res[i]); cout << ans; 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...