This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#ifdef tabr
#include "library/debug.cpp"
#else
#define debug(...)
#endif
long long findMaxAttraction(int n, int s, int d, int a[]) {
    long long res = (long long) -9e18;
    for (int dir = 0; dir < 2; dir++) {
        priority_queue<long long, vector<long long>, greater<long long>> pq;
        long long sum = 0;
        for (int i = s; i < n; i++) {
            pq.emplace(a[i]);
            sum += a[i];
            while (!pq.empty() && (int) pq.size() + (i - s) > d) {
                sum -= pq.top();
                pq.pop();
            }
            res = max(res, sum);
            auto pq2 = pq;
            auto sum2 = sum;
            for (int j = s - 1; j >= 0; j--) {
                pq.emplace(a[j]);
                sum += a[j];
                while (!pq.empty() && (int) pq.size() + (i - s) + (s - j) * 2 > d) {
                    sum -= pq.top();
                    pq.pop();
                }
                res = max(res, sum);
            }
            swap(pq, pq2);
            swap(sum, sum2);
        }
        reverse(a, a + n);
        s = n - 1 - s;
    }
    return res;
}
#ifdef tabr
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    return 0;
}
#endif
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |