#include <stdio.h>
#include<stdlib.h>
#include<string.h>
int f5(const void*a,const void*b)
{return *(int*)a-*(int*)b;}

int f6(const void *a,const void *b){
    return *(int*)b-*(int*)a;
}
int main()
 {
    int q;
    scanf("%d",&q);
    int *arr=NULL;
    int len=0;
    int cap=0;
    while(q--){
        int b; scanf("%d",&b);
        switch(b){
            case 1:{
                int x;
                scanf("%d",&x);
                if(len>=cap){
                    cap=cap==0?4:cap*2;
                    arr=(int*)realloc(arr,cap*sizeof(int));
                }
                arr[len++]=x;
                break;
            }
            case 2:{
                if(len>0) len--;
                break;
                }
            case 3:{
                int i;
                scanf("%d",&i);
                printf("%d\n",arr[i]);
                break;
            }
            case 4:{
                int i,x; 
                scanf("%d %d",&i,&x);
                if(len>=cap){
                    cap=cap==0?4:cap*2;
                    arr=(int*)realloc(arr,cap*sizeof(int));

                }memmove(&arr[i+2],&arr[i+1],(len-i-1)*sizeof(int));
                arr[i+1]=x;
                len++;
                break;
            }
            case 5:{
                qsort(arr,len,sizeof(int),f5);
                break;

            }
            case 6:{
                qsort(arr,len,sizeof(int),f6);
                break;
            }
            case 7:{
                printf("%d\n",len);
                break;
            }
            case 8:{
                for(int j=0;j<len;j++){
                    if(j>0) printf(" ");
                    printf("%d",arr[j]);
                }printf("\n");
                break;
            }
            default:
            break;
            }
        }
        free(arr);
        return 0;
    }

注意插入位置是i+1,不是i