답안 #152624

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
152624 2019-09-08T15:36:28 Z leatherman Hedgehog Daniyar and Algorithms (IZhO19_sortbooks) C++14
34 / 100
337 ms 67128 KB
#include<bits/stdc++.h>
//#include<ext/pb_ds/assoc_container.hpp>
//#include<ext/pb_ds/tree_policy.hpp>
//
//#pragma GCC optimize("-O3")
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("unroll-loops")

#define ll int
#define ld long double
#define endl "\n"
#define fi first
#define se second
#define y1 sadjfskldf
#define PB push_back
#define sqr(x) ((x) * (x))
#define all(x) x.begin(), x.end()
using namespace std;
//using namespace __gnu_pbds;
//mt19937_64 rnd(chrono::system_clock::now().time_since_epoch().count());

const ll N = 1e5 + 2;
//
//template <typename T>
//using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

struct node
{
    ll val;
    node *l,*r;
    node() : val(0), l(nullptr), r(nullptr){}
};
node *root[N],*mb;
ll n,Q,a[N],x,pos,l,r,k;
vector<pair<ll, ll> > v;
void build(node *v,ll tl,ll tr)
{
    if(tl == tr) return;
    ll tm = (tl + tr) / 2;
    v -> l = new node();
    v -> r = new node();
    build(v -> l, tl, tm);
    build(v -> r, tm + 1, tr);
}
void upd(node *old, node *now,ll tl,ll tr,ll pos,ll val)
{
    if(tl == tr)
    {
        now -> val = val;
        return;
    }
    ll tm = (tl + tr) / 2;
    if(pos <= tm)
    {
        now -> r = old -> r;
        now -> l = new node();
        upd(old -> l, now -> l, tl, tm, pos, val);
    } else
    {
        now -> l = old -> l;
        now -> r= new node();
        upd(old -> r, now -> r, tm + 1, tr, pos, val);
    }
    now -> val = max((now -> l) -> val, (now -> r) -> val);
}
ll get(node *v,ll tl,ll tr,ll l,ll r)
{
    if(l > r) return 0;
    if(tl == l && tr == r) return v -> val;
    ll tm = (tl + tr) / 2;
    return max(get(v -> l, tl, tm, l, min(r, tm)), get(v -> r, tm + 1, tr, max(l, tm + 1), r));
}
int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    cin>>n>>Q;
    for(int i = 1; i <= n; i++) cin>>a[i];
    root[n + 1] = new node();
    build(root[n + 1], 1, n);
    for(int i = n; i >= 1; i--)
    {
        x = a[i];
        root[i] = new node();
        root[i] -> val = root[i + 1] -> val;
        root[i] -> l = root[i + 1] -> l;
        root[i] -> r = root[i + 1] -> r;
        while(!v.empty() && v.back().fi < x)
        {
            pos = v.back().se;
            mb = new node();
            upd(root[i], mb, 1, n, pos, a[pos] + x);
            root[i] = mb;
            v.pop_back();
        }
        v.PB({x, i});
    }
    while(Q--)
    {
        cin>>l>>r>>k;
        x = get(root[l], 1, n, l, r);
        cout<<(x <= k)<<endl;
    }
    return 0;
}
/*
5 2
3 5 1 8 2
1 3 6
2 5 3
*/
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 3 ms 376 KB Output is correct
3 Correct 3 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 3 ms 376 KB Output is correct
6 Correct 3 ms 504 KB Output is correct
7 Correct 3 ms 508 KB Output is correct
8 Correct 3 ms 504 KB Output is correct
9 Correct 3 ms 504 KB Output is correct
10 Correct 3 ms 504 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 3 ms 376 KB Output is correct
3 Correct 3 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 3 ms 376 KB Output is correct
6 Correct 3 ms 504 KB Output is correct
7 Correct 3 ms 508 KB Output is correct
8 Correct 3 ms 504 KB Output is correct
9 Correct 3 ms 504 KB Output is correct
10 Correct 3 ms 504 KB Output is correct
11 Correct 6 ms 1144 KB Output is correct
12 Correct 10 ms 2936 KB Output is correct
13 Correct 12 ms 3032 KB Output is correct
14 Correct 15 ms 3036 KB Output is correct
15 Correct 14 ms 3068 KB Output is correct
16 Correct 8 ms 1784 KB Output is correct
17 Correct 8 ms 1272 KB Output is correct
18 Correct 10 ms 2552 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 50 ms 4112 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 337 ms 67128 KB Output is correct
2 Correct 295 ms 67048 KB Output is correct
3 Correct 160 ms 12392 KB Output is correct
4 Correct 160 ms 12264 KB Output is correct
5 Correct 162 ms 12236 KB Output is correct
6 Correct 110 ms 17744 KB Output is correct
7 Correct 118 ms 17840 KB Output is correct
8 Correct 214 ms 51420 KB Output is correct
9 Correct 48 ms 1016 KB Output is correct
10 Correct 201 ms 43580 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 3 ms 376 KB Output is correct
3 Correct 3 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 3 ms 376 KB Output is correct
6 Correct 3 ms 504 KB Output is correct
7 Correct 3 ms 508 KB Output is correct
8 Correct 3 ms 504 KB Output is correct
9 Correct 3 ms 504 KB Output is correct
10 Correct 3 ms 504 KB Output is correct
11 Correct 6 ms 1144 KB Output is correct
12 Correct 10 ms 2936 KB Output is correct
13 Correct 12 ms 3032 KB Output is correct
14 Correct 15 ms 3036 KB Output is correct
15 Correct 14 ms 3068 KB Output is correct
16 Correct 8 ms 1784 KB Output is correct
17 Correct 8 ms 1272 KB Output is correct
18 Correct 10 ms 2552 KB Output is correct
19 Runtime error 50 ms 3192 KB Execution killed with signal 11 (could be triggered by violating memory limits)
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 3 ms 376 KB Output is correct
3 Correct 3 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 3 ms 376 KB Output is correct
6 Correct 3 ms 504 KB Output is correct
7 Correct 3 ms 508 KB Output is correct
8 Correct 3 ms 504 KB Output is correct
9 Correct 3 ms 504 KB Output is correct
10 Correct 3 ms 504 KB Output is correct
11 Correct 6 ms 1144 KB Output is correct
12 Correct 10 ms 2936 KB Output is correct
13 Correct 12 ms 3032 KB Output is correct
14 Correct 15 ms 3036 KB Output is correct
15 Correct 14 ms 3068 KB Output is correct
16 Correct 8 ms 1784 KB Output is correct
17 Correct 8 ms 1272 KB Output is correct
18 Correct 10 ms 2552 KB Output is correct
19 Runtime error 50 ms 4112 KB Execution killed with signal 11 (could be triggered by violating memory limits)
20 Halted 0 ms 0 KB -