253952026-02-19 19:11:59miszorimarciMI bróker (50 pont)cpp17Time limit exceeded 10/501.095s42372 KiB
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 10005;
const int MX = 505;

int p[MAXN];
int next_le[MX][MAXN];
int next_ge[MX][MAXN]; 
long long memo[MX][MX];
bool c[MX][MX];

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

    int n, q; cin >> n >> q;

    for (int i = 0; i < n; ++i)cin >> p[i];


    for (int v = 1; v <= 500; ++v) {
        int last = -1;
        next_le[v][n] = -1;
        for (int i = n - 1; i >= 0; --i) {
            if (p[i] <= v) last = i;
            next_le[v][i] = last;
        }
    }

    for (int e = 1; e <= 500; ++e) {
        int last = -1;
        next_ge[e][n] = -1;
        for (int i = n - 1; i >= 0; --i) {
            if (p[i] >= e) last = i;
            next_ge[e][i] = last;
        }
    }


    while (q--) {
        int v, e;cin >> v >> e;

        if (c[v][e]) {
            cout << memo[v][e] << "\n";
            continue;
        }

        long long ans = 0;
        int t = 0;

        while (t < n) {
            int idx = next_le[v][t];
            if (idx == -1) break;

            ans -= p[idx];

            idx = next_ge[e][idx + 1];
            if (idx == -1) break;

            ans += p[idx];
            t = idx + 1;
        }

        c[v][e] = true;
        memo[v][e] = ans;
        cout << ans << "\n";
    }

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base10/50
1Accepted0/04ms4408 KiB
2Time limit exceeded0/01.085s42040 KiB
3Accepted1/14ms4844 KiB
4Accepted1/14ms4660 KiB
5Accepted2/28ms8624 KiB
6Accepted2/237ms39768 KiB
7Accepted2/237ms39832 KiB
8Accepted1/192ms42292 KiB
9Accepted1/1453ms42292 KiB
10Time limit exceeded0/21.077s42036 KiB
11Time limit exceeded0/21.077s42176 KiB
12Time limit exceeded0/21.087s42292 KiB
13Time limit exceeded0/21.088s42036 KiB
14Time limit exceeded0/21.088s42180 KiB
15Time limit exceeded0/31.077s42300 KiB
16Time limit exceeded0/31.087s42036 KiB
17Time limit exceeded0/31.09s42036 KiB
18Time limit exceeded0/31.088s42292 KiB
19Time limit exceeded0/31.088s42372 KiB
20Time limit exceeded0/31.088s42036 KiB
21Time limit exceeded0/31.095s42036 KiB
22Time limit exceeded0/31.08s42280 KiB
23Time limit exceeded0/31.082s42292 KiB
24Time limit exceeded0/31.088s42036 KiB