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

const int MAXN = 10005;
const int MAXVAL = 505;


short p[MAXN];
short next_le[MAXVAL][MAXN];
short next_ge[MAXVAL][MAXN];

int memo[MAXVAL][MAXVAL];
bool c[MAXVAL][MAXVAL];

int main() {
    ios_base::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 < MAXVAL; ++v) {
        int last = -1;
        for (int i = N - 1; i >= 0; --i) {
            if (p[i] <= v) last = i;
            next_le[v][i] = (short)last;
        }
        next_le[v][N] = -1; 
    }

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

    for (int q = 0; q < Q; ++q) {
        int V, E;cin >> V >> E;

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

        int ans = 0;
        int t = 0;
        
        const short* n_le = next_le[V];
        const short* n_ge = next_ge[E];

        while (t < N) {
            int idx = n_le[t];
            if (idx == -1) break;

            ans -= p[idx];

            if (idx + 1 >= N) break;
            
            idx = n_ge[idx + 1];
            if (idx == -1) break;

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

        memo[V][E] = ans;
        c[V][E] = true;
        cout << ans << "\n";
    }

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base10/50
1Accepted0/04ms4596 KiB
2Time limit exceeded0/01.087s21812 KiB
3Accepted1/14ms4660 KiB
4Accepted1/14ms4660 KiB
5Accepted2/27ms6540 KiB
6Accepted2/228ms20384 KiB
7Accepted2/225ms20416 KiB
8Accepted1/164ms21792 KiB
9Accepted1/1370ms21812 KiB
10Time limit exceeded0/21.078s21580 KiB
11Time limit exceeded0/21.082s21956 KiB
12Time limit exceeded0/21.088s21812 KiB
13Time limit exceeded0/21.087s21812 KiB
14Time limit exceeded0/21.088s21812 KiB
15Time limit exceeded0/31.088s22068 KiB
16Time limit exceeded0/31.082s22324 KiB
17Time limit exceeded0/31.085s22068 KiB
18Time limit exceeded0/31.09s22068 KiB
19Time limit exceeded0/31.09s22068 KiB
20Time limit exceeded0/31.09s21996 KiB
21Time limit exceeded0/31.095s21944 KiB
22Time limit exceeded0/31.083s22068 KiB
23Time limit exceeded0/31.087s21972 KiB
24Time limit exceeded0/31.085s22064 KiB