Submission #874438

#TimeUsernameProblemLanguageResultExecution timeMemory
874438sleepntsheepHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++17
100 / 100
1469 ms71304 KiB
#include <iostream>
#include <stack>
#include <cstring>
#include <vector>
#include <algorithm>
#include <deque>
#include <set>
#include <utility>
#include <array>

using namespace std;
#define ALL(x) x.begin(), x.end()
#define ShinLena cin.tie(nullptr)->sync_with_stdio(false);
#define INLINE inline __attribute__((always_inline))
using ll = long long;
#define N 1000005

int n, m, a[N], t[N<<1], d[N<<1], e[N];
array<int, 4> b[N];

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

INLINE void push(int v, int l, int r)
{
    if (!d[v]) return;
    t[v] += d[v];
    if (l ^ r)
    {
        int m = (l+r)/2, vl=v+1, vr=v+(m-l+1)*2;
        d[vl] += d[v], d[vr] += d[v];
    }
    d[v] = 0;
}

void add(int x, int y, int k, int v, int l, int r)
{
    push(v, l, r);
    if (y < l || r < x) return;
    if (x <= l && r <= y) { d[v] = k; push(v, l, r); return; }
    int m = (l+r)/2, vl=v+1, vr=v+(m-l+1)*2;
    add(x, y, k, vl, l, m);
    add(x, y, k, vr, m+1, r);
    t[v] = max(t[vl], t[vr]);
}

int query(int x, int y, int v, int l, int r)
{
    push(v, l, r);
    if (y < l || r < x) return 0;
    if (x <= l && r <= y) return t[v];
    int m = (l+r)/2, vl=v+1, vr=v+(m-l+1)*2;
    return max(query(x, y, vl, l, m), query(x, y, vr, m+1, r));
}

std::stack<int> s;

int main()
{
    ShinLena;
    cin >> n >> m;
    for (int i = 1; i <= n; ++i) cin >> a[i];
    for (int i = 0; i < m; ++i) cin >> b[i][0] >> b[i][1] >> b[i][2], b[i][3] = i;
    sort(b, b+m);

    s.push(n+1); a[n+1] = 1e9+1;
    int j = m-1;
    for (int i = n; i >= 1; --i)
    {
        while (s.size() && a[s.top()] < a[i])
        {
            int x = s.top();
            s.pop();
            add(x, x, a[x], 0, 1, n);
            add(x+1, s.top() - 1, -a[x], 0, 1, n);
        }
        add(i+1, s.top() - 1, a[i], 0, 1, n);
        s.push(i);
        for (; j >= 0 && b[j][0] == i; --j) e[b[j][3]] = b[j][2] >= query(i+1, b[j][1], 0, 1, n);
    }
    for (int i = 0; i < m; ++i) cout << e[i] << '\n';

    return 0;
}

Compilation message (stderr)

sortbooks.cpp:21:40: warning: bad option '-f unroll-loops' to pragma 'optimize' [-Wpragmas]
   21 | #pragma GCC optimize("O3, unroll-loops")
      |                                        ^
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
   22 | #pragma GCC target("avx2")
      |                          ^
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
sortbooks.cpp:22:26: warning: bad option '-f unroll-loops' to
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...