思路历程: 本来想着每次放进一个数字就用一次qsort()(毕竟这叫快排嘛。。。)然后就超时了。
仔细想想它每次就放进一个数字,那么把这个数字放在它合适的位置不就行了?那么核心算法就是插空了。
代码:
#include<stdio.h>
#include<stdio.h>
char zl[4];
int i,j,k;
int aim;
int temp;
int flag=0;
int cnt=0;
int zs[100001]={0};
int count=0;
int main()
{while(scanf("%s",zl)!=EOF&&strcmp(zl,"END")!=0){if(zl[0]=='A'){cnt++;scanf("%d",&aim);for(i=0;i<cnt;i++){if(aim<zs[i]){for(j=i;j<cnt+1;j++){temp=aim;aim=zs[j];zs[j]=temp;}goto next;}}zs[cnt]=aim;next:;//for(i=0;i<cnt+1;i++)//printf("%d ",zs[i]);//printf("\n");}if(zl[0]=='G'){count++;printf("%d\n",zs[count]);}memset(zl,0,4); }//for(i=0;i<cnt;i++)//printf("%d ",zs[i]);
// printf("\n");
}