Submission #391825

# Submission time Handle Problem Language Result Execution time Memory
391825 2021-04-20T03:21:55 Z i_am_noob Cake (CEOI14_cake) C++17
0 / 100
224 ms 3932 KB
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define int ll
#define rep(n) rep1(i,n)
#define rep1(i,n) rep2(i,0,n)
#define rep2(i,a,b) for(int i=a; i<(b); ++i)
#define rep3(i,a,b) for(int i=a; i>=(b); --i)
#define pb push_back
#define pii pair<int,int>
#define inf 0x3f3f3f3f
#define all(a) a.begin(),a.end()
#define sz(a) ((int)a.size())
#define pow2(x) (1ll<<(x))

#ifdef i_am_noob
#define bug(...) cerr << "#" << __LINE__ << " " << #__VA_ARGS__ << "- ", _do(__VA_ARGS__)
template<typename T> void _do(T x){cerr << x << endl;}
template<typename T, typename ...S> void _do(T x, S ...y){cerr << x << ", ";_do(y...);}
#else
#define bug(...) 49
#endif

const int maxn=200005;

int n,x,a[maxn],q,cur;
vector<int> vec;
vector<pii> vecl,vecr;

signed main(){
    ios_base::sync_with_stdio(0),cin.tie(0);
    cin >> n >> x;
    x--;
    rep(n) cin >> a[i];
    rep(n) a[i]--;
    vec.resize(min(n,10ll));
    rep(n) if(a[i]>=n-10) vec[n-a[i]-1]=i;
    rep3(i,x-1,0){
        if(vecl.empty()||a[i]>vecl.back().first) vecl.pb({a[i],i});
    }
    rep2(i,x+1,n){
        if(vecr.empty()||a[i]>vecr.back().first) vecr.pb({a[i],i});
    }
    vecl.pb({inf,-1}),vecr.pb({inf,n});
    cur=n;
    cin >> q;
    while(q--){
        char op;
        cin >> op;
        if(op=='E'){
            int pos,val;
            cin >> pos >> val;
            pos--,val--;
            if(pos==x) continue;
            if(pos<x){
                for(auto i: vec) if(a[i]>=cur-val) a[i]++;
                a[pos]=cur-val;
                vector<pii> tmp;
                while(sz(vecl)&&vecl.back().second<=pos){
                    if(vecl.back().first>a[pos]) tmp.pb(vecl.back());
                    vecl.pop_back();
                }
                if(vecl.empty()||(vecl.back().second>pos&&vecl.back().first<a[pos])) vecl.pb({a[pos],pos});
                while(sz(tmp)) vecl.pb(tmp.back()),tmp.pop_back();

                for(int i=sz(vecr)-1; i>=0&&vecr[i].first>=a[pos]; --i) vecr[i].first++;
            }
            else{
                for(auto i: vec) if(a[i]>=cur-val) a[i]++;
                a[pos]=cur-val;
                vector<pii> tmp;
                while(sz(vecr)&&vecr.back().second>=pos){
                    if(vecr.back().first>a[pos]) tmp.pb(vecr.back());
                    vecr.pop_back();
                }
                if(vecr.empty()||(vecr.back().second<pos&&vecr.back().first<a[pos])) vecr.pb({a[pos],pos});
                while(sz(tmp)) vecr.pb(tmp.back()),tmp.pop_back();

                for(int i=sz(vecl)-1; i>=0&&vecl[i].first>=a[pos]; --i) vecl[i].first++;
            }
            cur++;
            rep(sz(vec)) if(vec[i]==pos||i==sz(vec)-1){
                vec.erase(vec.begin()+i);
                break;
            }
            vec.insert(vec.begin()+val,pos);
            for(auto i: vecl) bug(i.first,i.second);
            for(auto i: vecr) bug(i.first,i.second);
        }
        else{
            int pos;
            cin >> pos;
            pos--;
            if(pos==x){
                cout << "0\n";
                continue;
            }
            if(pos<x){
                pii tmp={a[pos],pos};
                pii p=*--upper_bound(all(vecl),tmp,[&](const pii& i,const pii& j){return i.second>j.second;});
                pii q=*upper_bound(all(vecr),p);
                cout << q.second-pos-1 << "\n";
            }
            else{
                pii tmp={a[pos],pos};
                pii p=*--upper_bound(all(vecr),tmp,[&](const pii& i,const pii& j){return i.second<j.second;});
                pii q=*upper_bound(all(vecl),p);
                cout << pos-q.second-1 << "\n";
            }
        }
    }
}

Compilation message

cake.cpp: In function 'int main()':
cake.cpp:22:18: warning: statement has no effect [-Wunused-value]
   22 | #define bug(...) 49
      |                  ^~
cake.cpp:88:31: note: in expansion of macro 'bug'
   88 |             for(auto i: vecl) bug(i.first,i.second);
      |                               ^~~
cake.cpp:88:22: warning: variable 'i' set but not used [-Wunused-but-set-variable]
   88 |             for(auto i: vecl) bug(i.first,i.second);
      |                      ^
cake.cpp:22:18: warning: statement has no effect [-Wunused-value]
   22 | #define bug(...) 49
      |                  ^~
cake.cpp:89:31: note: in expansion of macro 'bug'
   89 |             for(auto i: vecr) bug(i.first,i.second);
      |                               ^~~
cake.cpp:89:22: warning: variable 'i' set but not used [-Wunused-but-set-variable]
   89 |             for(auto i: vecr) bug(i.first,i.second);
      |                      ^
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 1 ms 204 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 175 ms 332 KB Output isn't correct
2 Incorrect 141 ms 376 KB Output isn't correct
3 Incorrect 148 ms 376 KB Output isn't correct
4 Correct 134 ms 376 KB Output is correct
5 Incorrect 157 ms 460 KB Output isn't correct
6 Incorrect 190 ms 504 KB Output isn't correct
7 Incorrect 153 ms 508 KB Output isn't correct
8 Correct 148 ms 496 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 34 ms 1636 KB Output isn't correct
2 Incorrect 39 ms 1488 KB Output isn't correct
3 Incorrect 37 ms 1472 KB Output isn't correct
4 Correct 1 ms 204 KB Output is correct
5 Runtime error 25 ms 3612 KB Execution killed with signal 11
6 Runtime error 24 ms 3524 KB Execution killed with signal 11
7 Runtime error 23 ms 3932 KB Execution killed with signal 11
# Verdict Execution time Memory Grader output
1 Incorrect 19 ms 452 KB Output isn't correct
2 Incorrect 18 ms 456 KB Output isn't correct
3 Incorrect 29 ms 828 KB Output isn't correct
4 Incorrect 31 ms 824 KB Output isn't correct
5 Incorrect 51 ms 628 KB Output isn't correct
6 Incorrect 84 ms 1148 KB Output isn't correct
7 Incorrect 62 ms 876 KB Output isn't correct
8 Incorrect 72 ms 1100 KB Output isn't correct
9 Runtime error 21 ms 3556 KB Execution killed with signal 11
10 Incorrect 169 ms 1424 KB Output isn't correct
11 Incorrect 182 ms 1792 KB Output isn't correct
12 Incorrect 224 ms 3460 KB Output isn't correct
13 Runtime error 22 ms 3548 KB Execution killed with signal 11