Submission #101560

# Submission time Handle Problem Language Result Execution time Memory
101560 2019-03-19T04:25:40 Z dwsc Cake (CEOI14_cake) C++14
0 / 100
43 ms 23804 KB
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> ii;
struct node{
    int s,e,m;
    int v;
    node *l,*r;
    node(int _s,int _e){
        s = _s;
        e = _e;
        m = (s+e)/2;
        v = 0;
        if (s != e){
            l = new node(s,m);
            r = new node(m+1,e);
        }
    }
    void up(int x,int v1){
        if (s == e){
            v = v1;
            return;
        }
        if (x <= m) l->up(x,v1);
        else r ->up(x,v1);
        v = max(l->v,r->v);
    }
    int rmq(int x,int y){
        if (s == x && e == y) return v;
        if (y <= m) return l->rmq(x,y);
        if (x > m) return r->rmq(x,y);
        return max(l->rmq(x,y),r->rmq(x,y));
    }
}*root;
int main(){
    ios_base::sync_with_stdio(false);
    int n,a,q;
    cin >> n >>a;
    a--;
    root = new node(0,n-1);
    if (n <= 25000){
        int arr[n];
        set<ii> s;
        for (int i = 0; i < n; i++){
            cin >> arr[i];
            s.insert(ii(arr[i],i));
            if (s.size() > 10) s.erase(s.begin());
            root->up(i,arr[i]);
        }
        int q;
        cin >> q;
        vector<ii> del;
        for (auto it = s.begin(); it != s.end(); ++it){
            del.push_back(*it);
            //cout << (*it).first << " " << (*it).second << "\n";
        }
        for (int i = 0; i < q; i++){
            char c;
            cin >> c;
            if (c == 'E'){
                int x,k;
                cin >> x >> k;
                x--;
                set<ii> s2;
                for (int j = del.size()-1; j >= 0; j--){
                    if (del.size()-j < k){
                        s2.insert(ii(del[j].first+1,del[j].second));
                        root->up(del[j].second,del[j].first+1);
                    }
                    else{
                        if (del[j].second != x)s2.insert(ii(del[j].first,del[j].second));
                    }
                    if (del.size()-j==k){
                        s2.insert(ii(del[j].first+1,x));
                        root->up(x,del[j].first+1);
                    }
                    if (s2.size() >= 10) s2.erase(s2.begin());
                }
                del.clear();
                for (auto it = s2.begin(); it != s2.end(); ++it){
                    del.push_back(*it);
                    //cout << (*it).first << " " << (*it).second << "\n";
                }
            }
            else{
                int b;
                cin >> b;
                b--;
                if (a == b) cout << "0\n";
                else if (a < b){
                    int maxi = root->rmq(a+1,b);
                    int l = 0, r = a;
                    int ans = -1;
                    while (l != r){
                        int m = (l+r)/2;
                        if (root->rmq(m,a-1) > maxi){
                            ans = m;
                            l = m+1;
                        }
                        else r = m;
                    }
                    ans++;
                    cout << b-ans << "\n";
                }
                else{
                  continue;
                    int maxi = root->rmq(b,a-1);
                    int l = a+1, r = n;
                    while (l != r){
                        int m = (l+r)/2;
                        if (root->rmq(a+1,m) > maxi){
                            r = m;
                        }
                        else l = m+1;
                    }
                    l--;
                    cout << l-b << "\n";
                }
            }
        }
    }
    else{

    }
}

Compilation message

cake.cpp: In function 'int main()':
cake.cpp:65:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                     if (del.size()-j < k){
                         ~~~~~~~~~~~~~^~~
cake.cpp:72:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                     if (del.size()-j==k){
                         ~~~~~~~~~~~~^~~
cake.cpp:36:13: warning: unused variable 'q' [-Wunused-variable]
     int n,a,q;
             ^
# Verdict Execution time Memory Grader output
1 Runtime error 3 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 10 ms 2304 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Runtime error 9 ms 2560 KB Execution killed with signal 11 (could be triggered by violating memory limits)
3 Runtime error 9 ms 2432 KB Execution killed with signal 11 (could be triggered by violating memory limits)
4 Runtime error 9 ms 2560 KB Execution killed with signal 11 (could be triggered by violating memory limits)
5 Runtime error 33 ms 5248 KB Execution killed with signal 11 (could be triggered by violating memory limits)
6 Runtime error 18 ms 5376 KB Execution killed with signal 11 (could be triggered by violating memory limits)
7 Runtime error 17 ms 5368 KB Execution killed with signal 11 (could be triggered by violating memory limits)
8 Runtime error 16 ms 5376 KB Execution killed with signal 11 (could be triggered by violating memory limits)
# Verdict Execution time Memory Grader output
1 Incorrect 15 ms 9728 KB Output isn't correct
2 Incorrect 16 ms 9728 KB Output isn't correct
3 Incorrect 19 ms 9728 KB Output isn't correct
4 Runtime error 0 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
5 Incorrect 37 ms 23800 KB Output isn't correct
6 Incorrect 33 ms 23800 KB Output isn't correct
7 Incorrect 43 ms 23776 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Runtime error 4 ms 1024 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Runtime error 5 ms 1408 KB Execution killed with signal 11 (could be triggered by violating memory limits)
3 Incorrect 9 ms 4992 KB Output isn't correct
4 Incorrect 9 ms 4964 KB Output isn't correct
5 Runtime error 4 ms 896 KB Execution killed with signal 11 (could be triggered by violating memory limits)
6 Incorrect 12 ms 6528 KB Output isn't correct
7 Runtime error 9 ms 2560 KB Execution killed with signal 11 (could be triggered by violating memory limits)
8 Incorrect 17 ms 9724 KB Output isn't correct
9 Incorrect 35 ms 23800 KB Output isn't correct
10 Runtime error 4 ms 896 KB Execution killed with signal 11 (could be triggered by violating memory limits)
11 Runtime error 13 ms 4480 KB Execution killed with signal 11 (could be triggered by violating memory limits)
12 Incorrect 27 ms 19200 KB Output isn't correct
13 Incorrect 33 ms 23804 KB Output isn't correct