Submission #676572

#TimeUsernameProblemLanguageResultExecution timeMemory
676572vjudge1Cake (CEOI14_cake)C++17
35 / 100
2088 ms7192 KiB
#include "bits/stdc++.h"
using namespace std;
#define int long long
#define endl "\n"
const int mod = (int) 1e9+7;
const int N=2e5+5;

signed main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    int n,a; cin>>n>>a;
    int d[n+5],opd[n+5];
    for (int i=1;i<=n;i++) {
      cin>>d[i];
      opd[d[i]]=i;
    }

    int when[n+5];
    when[a]=0;
    int l=a-1,r=a+1,time=1;
    while (time<n) {
      if (l>=1  && ((r>n) || (r<=n && d[l]<d[r]))) {
        when[l]=time; time++; l--;
      }
      if (r<=n && ((l<1) || (l>=1 && d[r]<d[l]))) {
        when[r]=time; time++; r++;
      }
    }

    int q; cin>>q;
    while (q--) {
      char c; cin>>c;
      if (c=='F') {
        int x; cin>>x;
        cout<<when[x]<<endl;
      }
      else {
        int x,nw; cin>>x>>nw;
        nw=n-(nw-1);
        for (int i=1;i<=n;i++) {
          if (d[i]>d[x] && d[i]<=nw) d[i]--;
        }
        d[x]=nw;

        //for (int i=1;i<=n;i++) cout<<d[i]<<' '; cout<<endl;

        int l=a-1,r=a+1,time=1;
        while (time<n) {
          if (l>=1  && ((r>n) || (r<=n && d[l]<d[r]))) {
            when[l]=time; time++; l--;
          }
          if (r<=n && ((l<1) || (l>=1 && d[r]<d[l]))) {
            when[r]=time; time++; r++;
          }
        }
      }

    }

}

Compilation message (stderr)

cake.cpp: In function 'int main()':
cake.cpp:12:16: warning: variable 'opd' set but not used [-Wunused-but-set-variable]
   12 |     int d[n+5],opd[n+5];
      |                ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...