Submission #166357

# Submission time Handle Problem Language Result Execution time Memory
166357 2019-12-01T18:51:54 Z koste4ka Hedgehog Daniyar and Algorithms (IZhO19_sortbooks) C++17
64 / 100
2119 ms 262148 KB
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-O3")

#include <bits/stdc++.h>

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/detail/standard_policies.hpp>

#define pb push_back
#define F first
#define S second
#define lll unsigned long long
#define lld long double

#define data sdadsd

//#define int lll

using namespace std;
using namespace __gnu_pbds;

template <typename T>
using ordered_set = tree <T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>;

mt19937 gen(chrono::system_clock::now().time_since_epoch().count());

const int N = 4e6 + 229;
const lll M = 1e9 + 7;
const lll M2 = 1e9 + 9;
const lll mod = 998244353;
const int rx[4] = {0, 0, -1, 1};
const int ry[4] = {-1, 1, 0, 0};
const lld eps = 1e-11;
const double pi = acos(-1.0);

vector < int > a;

int n;

vector < set < int > > all;

vector < int > ans;

vector < int > need;

void prec(int v, int l, int r) {
    for (int i = l; i < min(r, n); ++i) {
        if (i > l && a[i] < *all[v].rbegin()) {
            ans[v] = max(ans[v], a[i] + *all[v].rbegin());
        }
        all[v].insert(a[i]);
    }
    if (l + 1 == r) {
        return;
    }
    int mid = (l + r) / 2;
    prec(v * 2, l, mid);
    prec(v * 2 + 1, mid, r);
}

void go(int v, int l, int r, int cl, int cr) {
    if (cl >= r || cr <= l) {
        return;
    }
    if (cl >= l && cr <= r) {
        need.pb(v);
        return;
    }
    int mid = (cl + cr) / 2;
    go(v * 2, l, r, cl, mid);
    go(v * 2 + 1, l, r, mid, cr);
}

main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    srand(time(0));
#ifdef LOCAL
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#else
//    freopen("maxxor.in", "r", stdin);
//    freopen("maxxor.out", "w", stdout);
#endif
    int m;
    cin >> n >> m;
    a.resize(n);
    for (int i = 0; i < n; ++i) {
        cin >> a[i];
    }
    int st = 0;
    while ((1 << st) < n) {
        ++st;
    }
    all.resize(1 << (st + 1));
    ans.resize(1 << (st + 1));
    prec(1, 0, 1 << st);
    int l, r, k;
    int res;
    int best;
    while (m--) {
        cin >> l >> r >> k;
        --l;
        need.clear();
        go(1, l, r, 0, 1 << st);
        res = 0;
        best = 0;
        for (auto i : need) {
            if (best > *all[i].begin()) {
                auto it = all[i].lower_bound(best);
                --it;
                res = max(res, best + *it);
            }
            best = max(best, *all[i].rbegin());
            res = max(res, ans[i]);
        }
        cout << (res <= k) << '\n';
    }
    return 0;
}

Compilation message

sortbooks.cpp:77:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main() {
      ^
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 504 KB Output is correct
4 Correct 2 ms 368 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 3 ms 632 KB Output is correct
7 Correct 3 ms 632 KB Output is correct
8 Correct 3 ms 632 KB Output is correct
9 Correct 3 ms 504 KB Output is correct
10 Correct 3 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 504 KB Output is correct
4 Correct 2 ms 368 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 3 ms 632 KB Output is correct
7 Correct 3 ms 632 KB Output is correct
8 Correct 3 ms 632 KB Output is correct
9 Correct 3 ms 504 KB Output is correct
10 Correct 3 ms 376 KB Output is correct
11 Correct 8 ms 1400 KB Output is correct
12 Correct 21 ms 4344 KB Output is correct
13 Correct 21 ms 4344 KB Output is correct
14 Correct 24 ms 4504 KB Output is correct
15 Correct 23 ms 4472 KB Output is correct
16 Correct 18 ms 4472 KB Output is correct
17 Correct 12 ms 3320 KB Output is correct
18 Correct 8 ms 1656 KB Output is correct
# Verdict Execution time Memory Grader output
1 Runtime error 2119 ms 262148 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 609 ms 66652 KB Output is correct
2 Correct 521 ms 66424 KB Output is correct
3 Correct 191 ms 24440 KB Output is correct
4 Correct 205 ms 24440 KB Output is correct
5 Correct 192 ms 24440 KB Output is correct
6 Correct 150 ms 24444 KB Output is correct
7 Correct 149 ms 24440 KB Output is correct
8 Correct 162 ms 23672 KB Output is correct
9 Correct 52 ms 888 KB Output is correct
10 Correct 160 ms 23772 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 504 KB Output is correct
4 Correct 2 ms 368 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 3 ms 632 KB Output is correct
7 Correct 3 ms 632 KB Output is correct
8 Correct 3 ms 632 KB Output is correct
9 Correct 3 ms 504 KB Output is correct
10 Correct 3 ms 376 KB Output is correct
11 Correct 8 ms 1400 KB Output is correct
12 Correct 21 ms 4344 KB Output is correct
13 Correct 21 ms 4344 KB Output is correct
14 Correct 24 ms 4504 KB Output is correct
15 Correct 23 ms 4472 KB Output is correct
16 Correct 18 ms 4472 KB Output is correct
17 Correct 12 ms 3320 KB Output is correct
18 Correct 8 ms 1656 KB Output is correct
19 Correct 2045 ms 208500 KB Output is correct
20 Correct 2009 ms 209004 KB Output is correct
21 Correct 1647 ms 208972 KB Output is correct
22 Correct 1687 ms 208532 KB Output is correct
23 Correct 1641 ms 208464 KB Output is correct
24 Correct 926 ms 208500 KB Output is correct
25 Correct 926 ms 208380 KB Output is correct
26 Correct 1018 ms 208456 KB Output is correct
27 Correct 1004 ms 208532 KB Output is correct
28 Correct 1046 ms 208424 KB Output is correct
29 Correct 1028 ms 208468 KB Output is correct
30 Correct 1034 ms 208532 KB Output is correct
31 Correct 1061 ms 208492 KB Output is correct
32 Correct 1066 ms 208508 KB Output is correct
33 Correct 1084 ms 208376 KB Output is correct
34 Correct 899 ms 208340 KB Output is correct
35 Correct 903 ms 208532 KB Output is correct
36 Correct 905 ms 208532 KB Output is correct
37 Correct 906 ms 208596 KB Output is correct
38 Correct 931 ms 208452 KB Output is correct
39 Correct 1174 ms 208980 KB Output is correct
40 Correct 878 ms 127864 KB Output is correct
41 Correct 364 ms 49144 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 504 KB Output is correct
4 Correct 2 ms 368 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 3 ms 632 KB Output is correct
7 Correct 3 ms 632 KB Output is correct
8 Correct 3 ms 632 KB Output is correct
9 Correct 3 ms 504 KB Output is correct
10 Correct 3 ms 376 KB Output is correct
11 Correct 8 ms 1400 KB Output is correct
12 Correct 21 ms 4344 KB Output is correct
13 Correct 21 ms 4344 KB Output is correct
14 Correct 24 ms 4504 KB Output is correct
15 Correct 23 ms 4472 KB Output is correct
16 Correct 18 ms 4472 KB Output is correct
17 Correct 12 ms 3320 KB Output is correct
18 Correct 8 ms 1656 KB Output is correct
19 Runtime error 2119 ms 262148 KB Execution killed with signal 9 (could be triggered by violating memory limits)
20 Halted 0 ms 0 KB -