9375 2024. 02. 21 10:39:07 szil MI bróker (50 pont) cpp17 Elfogadva 50/50 995ms 7148 KiB
#include <bits/stdc++.h>

using ll = long long;
using namespace std;

#pragma GCC optimize("O3,unroll-loops")

const int MAXN = 10'001;

int a[MAXN], ans[501][501];
vector<int> pos[501];

void solve() {
    int n, m; cin >> n >> m;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        pos[a[i]].emplace_back(i);
    }
    for (int l = 1; l <= 500; l++) {
        set<int> points;
        for (int i = 1; i <= n; i++) {
            if (a[i] <= l) {
                points.insert(i);
            }
        }
        if (points.empty()) continue;
        int cost = -a[*points.begin()];
        for (int r = 500; r >= l+1; r--) {
            for (int i : pos[r]) {
                if (*points.begin() < i) {
                    auto bef = points.lower_bound(i);
                    bef--;
                    if (a[*bef] <= l) {
                        cost += a[i];
                        auto nxt = points.lower_bound(i);
                        if (nxt != points.end()) {
                            cost -= a[*nxt];
                            if (a[*nxt] > l) {
                                points.erase(nxt);
                            }
                        }
                        points.insert(i);
                    }
                }
            }
            ans[l][r] = cost;
        }
    }
    while (m--) {
        int a, b; cin >> a >> b;
        cout << ans[a][b] << "\n";
    }
}

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
    int t = 1;
    // cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 4ms 3812 KiB
2 Elfogadva 0/0 865ms 5196 KiB
3 Elfogadva 1/1 3ms 3416 KiB
4 Elfogadva 1/1 3ms 4004 KiB
5 Elfogadva 2/2 72ms 4800 KiB
6 Elfogadva 2/2 948ms 5780 KiB
7 Elfogadva 2/2 947ms 5844 KiB
8 Elfogadva 1/1 441ms 5320 KiB
9 Elfogadva 1/1 514ms 5416 KiB
10 Elfogadva 2/2 856ms 6364 KiB
11 Elfogadva 2/2 731ms 6284 KiB
12 Elfogadva 2/2 810ms 6656 KiB
13 Elfogadva 2/2 815ms 6696 KiB
14 Elfogadva 2/2 777ms 6632 KiB
15 Elfogadva 3/3 995ms 6828 KiB
16 Elfogadva 3/3 990ms 6812 KiB
17 Elfogadva 3/3 991ms 7092 KiB
18 Elfogadva 3/3 986ms 7032 KiB
19 Elfogadva 3/3 990ms 7028 KiB
20 Elfogadva 3/3 989ms 7024 KiB
21 Elfogadva 3/3 992ms 7140 KiB
22 Elfogadva 3/3 986ms 7140 KiB
23 Elfogadva 3/3 987ms 7140 KiB
24 Elfogadva 3/3 987ms 7148 KiB