Submission #1143632

#TimeUsernameProblemLanguageResultExecution timeMemory
1143632M0stafaHacker (BOI15_hac)C++20
100 / 100
276 ms23876 KiB
#include <bits/stdc++.h> #define int long long using namespace std; #define all(x) x.begin(), x.end() template<typename T> istream &operator>>(istream &in, vector<T> &v) { for (auto &x: v) in >> x; return in; } template<typename T>ostream &operator<<(ostream &out, const vector<T> &v) { for (const T &x: v) out << x << ' ';return out;} #ifndef ONLINE_JUDGE #define dout(...) cerr << "Line:" << __LINE__ << " [" << #__VA_ARGS__ << "] = ["; _print(__VA_ARGS__) #else #define dout(...) #endif signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; vector<int> a(n + 1, 0); for (int i = 1; i <= n; i++) { cin >> a[i]; a.push_back(a[i]); } for (int i = 1; i <= 2 * n; i++) a[i] += a[i - 1]; multiset<int> st; vector<int> ans(n + 1, 1e18); int Slide = (n + 1) / 2; for (int i = 1; i <= 2 * n; i++) { if (i + Slide - 1 <= 2 * n) { int l = i; int r = l + (Slide - 1); st.insert(a[r] - a[l - 1]); } if (i > Slide) { int r = i - 1; int l = r - Slide; st.erase(st.find(a[r] - a[l])); } int Prev_idx = (i - 1) % n + 1; ans[Prev_idx] = min(ans[Prev_idx], *st.begin()); } int res = 0; for (int i = 1; i <= n; i++) { res = max(res, ans[i]); } cout << res; 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...