54042023-05-12 16:57:19szilBarátokcpp14Elfogadva 100/100174ms31016 KiB
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 200001;

int a[MAXN], tree[2*MAXN], n;
vector<int> extra[MAXN];

void upd(int u) {
    u += n;
    tree[u]++;
    for (u /= 2; u >= 1; u /= 2) {
        tree[u] = tree[2*u]+tree[2*u+1];
    }
}

int qry(int l, int r) {
    l += n; r += n;
    int res = 0;
    while (l <= r) {
        if (l % 2 == 1) res += tree[l++];
        if (r % 2 == 0) res += tree[r--];
        l /= 2; r /= 2;
    }
    return res;
}


int main()
{
    cin >> n;

    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        int l = max(1, i-a[i]);
        extra[l].push_back(i);
    }

    long long ans = 0;
    for (int i = 1; i <= n; i++) {
        ans += qry(i, n);
        for (int j : extra[i]) {
            ans -= qry(j, n);
        }
        upd(min(n, i+a[i]));
    }
    cout << ans << "\n";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva6ms11180 KiB
2Elfogadva96ms17496 KiB
subtask211/11
3Elfogadva96ms17496 KiB
4Elfogadva6ms11744 KiB
5Elfogadva9ms12144 KiB
6Elfogadva8ms12368 KiB
7Elfogadva8ms12436 KiB
8Elfogadva8ms12696 KiB
9Elfogadva8ms12584 KiB
10Elfogadva8ms12824 KiB
11Elfogadva8ms12588 KiB
subtask312/12
12Elfogadva8ms12588 KiB
13Elfogadva130ms25056 KiB
14Elfogadva126ms25224 KiB
15Elfogadva130ms25188 KiB
16Elfogadva115ms28644 KiB
17Elfogadva127ms25464 KiB
18Elfogadva112ms29812 KiB
19Elfogadva126ms27028 KiB
subtask431/31
20Elfogadva126ms27028 KiB
21Elfogadva118ms25664 KiB
22Elfogadva131ms25664 KiB
23Elfogadva111ms29680 KiB
24Elfogadva128ms26660 KiB
25Elfogadva158ms23388 KiB
26Elfogadva167ms24840 KiB
27Elfogadva145ms20220 KiB
28Elfogadva166ms26068 KiB
29Elfogadva136ms17884 KiB
subtask546/46
30Elfogadva136ms17884 KiB
31Elfogadva136ms26468 KiB
32Elfogadva150ms26396 KiB
33Elfogadva174ms26364 KiB
34Elfogadva115ms29124 KiB
35Elfogadva148ms24632 KiB
36Elfogadva111ms30808 KiB
37Elfogadva130ms17368 KiB
38Elfogadva131ms17660 KiB
39Elfogadva152ms24112 KiB
40Elfogadva112ms31016 KiB
41Elfogadva153ms24048 KiB
42Elfogadva158ms26848 KiB
43Elfogadva165ms26264 KiB
44Elfogadva144ms20916 KiB
45Elfogadva162ms25644 KiB