Submission #975880

#TimeUsernameProblemLanguageResultExecution timeMemory
975880Darren0724Cake (CEOI14_cake)C++17
35 / 100
2085 ms3076 KiB
#include <bits/stdc++.h>
using namespace std;
#define LCBorz ios_base::sync_with_stdio(false); cin.tie(0);
//#define int long long
#define all(x) x.begin(), x.end()
#define endl '\n'
const int N=200005;
const int INF=1e9;
int32_t main() {
    LCBorz;
    int n,c;cin>>n>>c;
    vector<int> v(n);
    vector<int> ans(n);
    for(int i=0;i<n;i++){
        cin>>v[i];
    }
    auto cal=[&]()->void {
        int l=c-2,r=c;
        for(int i=1;i<n;i++){
            if(l==-1){
                ans[r++]=i;
                continue;
            }
            if(r==n||v[l]<v[r]){
                ans[l--]=i;
            }
            else{
                ans[r++]=i;
            }
        }
    };
    cal();
    int q;cin>>q;
    for(int i=0;i<q;i++){
        char c;cin>>c;
        if(c=='F'){
            int p;cin>>p;
            cout<<ans[p-1]<<endl;
        }
        else{
            int a,b;cin>>a>>b;a--;
            b=n+1-b;
            int k=v[a];
            for(int j=0;j<n;j++){
                if(v[j]>=k&&v[j]<=b)v[j]--;
            }
            v[a]=b;
            cal();
        }
    }
    
    
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...