Pagini recente » Cod sursa (job #2294109) | Istoria paginii runda/boji_round9/clasament | Cod sursa (job #1066828) | Cod sursa (job #2616727) | Cod sursa (job #2306565)
#include<cstdio>
int n,a[3000001],i,k,j,t;
int C(int p,int r,int i)
{
int l,j;
if(p==r)
return a[p];
if(!((p+r)&1))
a[r]^=a[p]^=a[r]^=a[p];
for(l=p-1,j=p;j<r;j++)
if(a[j]<=a[r])
if(a[++l]!=a[j])
a[l]^=a[j]^=a[l]^=a[j];
if(l+1!=r&&a[l+1]!=a[r])
a[l+1]^=a[r]^=a[l+1]^=a[r];
return i==l-p+2?a[l+1]:(i<l-p+2?C(p,l,i):C(l+2,r,i-l+p-2));
}
int main()
{
freopen("sdo.in","r",stdin),freopen("sdo.out","w",stdout),scanf("%d%d%d",&n,&k,&a[1]);
for(i=2;i<=n;i++)
scanf("%d",a+i),a[i-1]<a[i]?j++:t++;
printf("%d",j==n-1?a[k]:(t==n-1?a[n-k+1]:C(1,n,k)));
}