답안 #110736

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
110736 2019-05-12T07:10:41 Z ckodser 케이크 (CEOI14_cake) C++14
15 / 100
2000 ms 2692 KB
#include<bits/stdc++.h>

#define ll long long
#define pb push_back
#define mp make_pair
#define ld long double
#define F first
#define S second
#define pii pair<ll,ll> 

using namespace :: std;

const ll mod=1e9+7;
const ll maxn=5e5+500;
const ll inf=1e9+900;
const ll sq=10;


ll p[maxn];
ll n,a;

ll find_max(ll e){
    ll l=e;
    ll r=a;
    if(r<l){
	swap(l,r);
    }
    ll ans=0;
    for(ll i=l;i<=r;i++){
	if(i!=a){
	    ans=max(ans,p[i]);
	}
    }
    return ans;
}
ll find_first_high(ll x,ll f){
    for(ll i=a+f;;i+=f){
	if(p[i]>x)return i;
    }
    return 0;
}
void update(ll x,ll v){
    ll a=p[x];
    ll b=n-v+1;
    for(ll i=1;i<=n;i++){
	if(p[i]==a){
	    p[i]=b;
	}
	else if(a<p[i] && p[i]<=b){
	    p[i]--;
	}
    }
}
int main(){
    cin>>n>>a;
    p[0]=n+1;
    p[n+1]=n+2;
    for(ll i=1;i<=n;i++){
	cin>>p[i];
    }	
    ll q;
    cin>>q;
    for(ll i=0;i<q;i++){
	char c;
	cin>>c;
	if(c=='F'){
	    ll e;
	    cin>>e;
	    ll mi=find_max(e);
	    ll o;
	    if(e==a){
		cout<<0<<endl;
		continue;
	    }	
	    if(e<a){
		o=find_first_high(mi,1);
	    }else{
		o=find_first_high(mi,-1);
	    }
	    cout<<abs(o-e)-1<<endl;
	}else{
	    ll x,v;
	    cin>>x>>v;
	    update(x,v);
	}
    }

}
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 256 KB Output is correct
2 Correct 3 ms 384 KB Output is correct
3 Correct 4 ms 256 KB Output is correct
4 Correct 19 ms 384 KB Output is correct
5 Correct 207 ms 604 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2037 ms 384 KB Time limit exceeded
2 Execution timed out 2052 ms 384 KB Time limit exceeded
3 Execution timed out 2047 ms 384 KB Time limit exceeded
4 Execution timed out 2045 ms 384 KB Time limit exceeded
5 Execution timed out 2051 ms 632 KB Time limit exceeded
6 Execution timed out 2032 ms 512 KB Time limit exceeded
7 Execution timed out 2012 ms 512 KB Time limit exceeded
8 Execution timed out 2031 ms 512 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2040 ms 1588 KB Time limit exceeded
2 Execution timed out 2049 ms 1664 KB Time limit exceeded
3 Correct 1793 ms 1580 KB Output is correct
4 Correct 2 ms 256 KB Output is correct
5 Execution timed out 2051 ms 2528 KB Time limit exceeded
6 Execution timed out 2068 ms 2692 KB Time limit exceeded
7 Execution timed out 2064 ms 2684 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Correct 384 ms 664 KB Output is correct
2 Correct 569 ms 512 KB Output is correct
3 Execution timed out 2054 ms 888 KB Time limit exceeded
4 Execution timed out 2056 ms 1152 KB Time limit exceeded
5 Correct 771 ms 764 KB Output is correct
6 Execution timed out 2071 ms 1144 KB Time limit exceeded
7 Execution timed out 2066 ms 760 KB Time limit exceeded
8 Execution timed out 2054 ms 1144 KB Time limit exceeded
9 Execution timed out 2043 ms 2500 KB Time limit exceeded
10 Execution timed out 2055 ms 1572 KB Time limit exceeded
11 Execution timed out 2043 ms 896 KB Time limit exceeded
12 Execution timed out 2045 ms 2188 KB Time limit exceeded
13 Execution timed out 2053 ms 2568 KB Time limit exceeded