Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
31435 lnx 求第k大数 C++ 运行超时 1000 MS 244 KB 676 2023-11-18 19:32:00

Tests(0/1):


#include<iostream> using namespace std; int f(int a[],int left,int right) { int temp=a[left]; while(left<right) { while(left<right&&a[right]>temp) right--; a[left]=a[right]; while(left<right&&a[left]>temp) left++; a[right]=a[left]; } a[left]=temp; return left; } int main() { int N,index,a[100001]; while(cin>>N>>index) { index=N-index; for(int i=0;i<N;i++) { cin>>a[i]; } int left=0,right=N-1; int pos=f(a,left,right); while(index!=pos) { if(pos<index) { pos=f(a,pos+1,right); } else if(pos>index) { pos=f(a,left,pos-1); } } cout<<a[pos]<<endl; } return 0; }


测评信息: