Submission #1163237

#TimeUsernameProblemLanguageResultExecution timeMemory
1163237zyadhanyHacker (BOI15_hac)C++20
100 / 100
43 ms20476 KiB
#define _CRT_SECURE_NO_WARNINGS #include <bits/stdc++.h> #include <unordered_map> #include <unordered_set> #define ll long long #define ld long double #define pl pair<ll, ll> #define vi vector<ll> #define vii vector<vi> #define vc vector<char> #define vcc vector<vc> #define vp vector<pl> #define mi map<ll,ll> #define mc map<char,int> #define sortx(X) sort(X.begin(),X.end()); #define all(X) X.begin(),X.end() #define allr(X) X.rbegin(),X.rend() #define ln '\n' #define YES {cout << "YES\n"; return;} #define NO {cout << "NO\n"; return;} #define MUN {cout << "-1\n"; return;} const int MODE = 1e9 + 7; using namespace std; vector<int> minSlidingWindow(vector<ll> &nums, int k) { deque<int> d; vector<int> ret; for (int i = 0; i < k; i++) { while (!d.empty() && nums[i] < nums[d.back()]) { d.pop_back(); } d.push_back(i); } for (int i = k; i < nums.size(); i++) { ret.push_back(nums[d.front()]); if (!d.empty() && d.front() <= i - k) { d.pop_front(); } while (!d.empty() && nums[i] <= nums[d.back()]) { d.pop_back(); } d.push_back(i); } ret.push_back(nums[d.front()]); return ret; } void solve(int tc) { ll n; cin >> n; vi X(n); ll k = (n + 1) / 2; for (int i = 0; i < n; i++) { cin >> X[i]; X.push_back(X[i]); } ll sum = 0; ll at = 0; vi Y; for (int i = 0; i < X.size(); i++) { sum += X[i]; if (i >= k) { sum -= X[i - k]; } if (i >= k - 1) { Y.push_back(sum); } } auto res = minSlidingWindow(Y, k); cout << *max_element(all(res)) << '\n'; } int main() { ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr); int size = 1; // freopen("fortmoo.in", "r", stdin); // freopen("fortmoo.out", "w", stdout); // cin >> size; for (int i = 1; i <= size; i++) solve(i); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...