답안 #101430

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
101430 2019-03-19T01:51:19 Z errorgorn 케이크 (CEOI14_cake) C++14
0 / 100
201 ms 7288 KB
#include <cstdio>
#include <vector>
#include <utility>
#include <deque>
using namespace std;
typedef pair<int,int> ii;
int n,d,q;
int E,F;
int arr[250005],top[12];
ii query[500005];
void print(){
    for (int x=0;x<n;x++){
        printf("%d ",arr[x]);
    }
    printf("\n");
    for (int x=0;x<min(n,10);x++){
        printf("%d ",top[x]);
    }
    printf("\n");
}
int f(int i){
    if (d==i) return 0;
    else{
        int ans=1;
        ii a=ii(1000000000,-1), b=ii(1000000000,-1);
        if (d!=0) a=ii(arr[d-1],d-1);
        if (d!=n-1) b=ii(arr[d+1],d+1);
        if (a>b) swap(a,b);
        while (a.second!=i){
            //printf("%d %d\n",a.second,b.second);
            if (a.second<d){
                if (a.second!=0) a=ii(arr[a.second-1],a.second-1);
                else a=ii(1000000000,-1);
            }
            else{
                if (a.second!=n-1) a=ii(arr[a.second+1],a.second+1);
                else a=ii(1000000000,-1);
            }
            if (a>b) swap(a,b);
            ans++;
        }
        return ans;
    }
}
int main(){
    //freopen("input.txt","r",stdin);
    int a,b;
    scanf("%d%d",&n,&d);
    d--;
    for (int x=0;x<n;x++){
        scanf("%d",&arr[x]);
    }
    scanf("%d",&q);
    for (int x=0;x<q;x++){
        getchar();
        if (getchar()=='E'){
            scanf("%d%d",&a,&b);
            query[x]=(ii(a-1,b-1));
            E++;
        }
        else{
            scanf("%d",&a);
            query[x]=(ii(a-1,-1));
            F++;
        }
    }
    for (int x=0;x<n;x++){
        if (arr[x]>n-10) top[n-arr[x]]=x;
    }
    int tb=min(n,10);
    ii it;
    //print();
    if (n<=10000 && q<=10000){
        for (int __x=0;__x<q;__x++){
            it=query[__x];
            if ((it).second==-1){ //this is F
                printf("%d\n",f((it).first));
            }
            else{ //this is E
                arr[(it).first]=arr[top[(it).second]]+1;
                for (int x=0;x<(it).second;x++){
                    arr[top[x]]++;
                }
                int _x;
                for (_x=(it).second;_x<n && top[_x]!=(it).first;_x++){}
                for (int x=_x;x>(it).second;x--){
                    top[x]=top[x-1];
                }
                top[(it).second]=(it).first;
                //print();
            }
        }
    }
}

Compilation message

cake.cpp: In function 'int main()':
cake.cpp:70:9: warning: unused variable 'tb' [-Wunused-variable]
     int tb=min(n,10);
         ^~
cake.cpp:48:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d",&n,&d);
     ~~~~~^~~~~~~~~~~~~~
cake.cpp:51:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&arr[x]);
         ~~~~~^~~~~~~~~~~~~~
cake.cpp:53:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&q);
     ~~~~~^~~~~~~~~
cake.cpp:57:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d%d",&a,&b);
             ~~~~~^~~~~~~~~~~~~~
cake.cpp:62:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d",&a);
             ~~~~~^~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 256 KB Output is correct
2 Incorrect 2 ms 256 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 148 ms 6264 KB Output isn't correct
2 Incorrect 201 ms 6136 KB Output isn't correct
3 Incorrect 145 ms 6080 KB Output isn't correct
4 Incorrect 93 ms 6136 KB Output isn't correct
5 Incorrect 111 ms 6236 KB Output isn't correct
6 Incorrect 108 ms 6008 KB Output isn't correct
7 Incorrect 134 ms 6244 KB Output isn't correct
8 Incorrect 98 ms 6000 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 38 ms 2744 KB Output isn't correct
2 Incorrect 29 ms 2808 KB Output isn't correct
3 Incorrect 34 ms 2740 KB Output isn't correct
4 Correct 2 ms 256 KB Output is correct
5 Incorrect 60 ms 3936 KB Output isn't correct
6 Incorrect 63 ms 3960 KB Output isn't correct
7 Incorrect 50 ms 3960 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 15 ms 1024 KB Output isn't correct
2 Incorrect 13 ms 1152 KB Output isn't correct
3 Incorrect 25 ms 2020 KB Output isn't correct
4 Incorrect 39 ms 2028 KB Output isn't correct
5 Incorrect 48 ms 2552 KB Output isn't correct
6 Incorrect 40 ms 3320 KB Output isn't correct
7 Incorrect 55 ms 3476 KB Output isn't correct
8 Incorrect 83 ms 4140 KB Output isn't correct
9 Incorrect 164 ms 6648 KB Output isn't correct
10 Incorrect 118 ms 7288 KB Output isn't correct
11 Incorrect 98 ms 6136 KB Output isn't correct
12 Incorrect 141 ms 6648 KB Output isn't correct
13 Incorrect 143 ms 6648 KB Output isn't correct