Pagini recente » Istoria paginii runda/vlad | Istoria paginii runda/antrenament-de-primavara/clasament | Istoria paginii runda/simulare_oji_dinamica | Cod sursa (job #2919218) | Cod sursa (job #1194943)
#include <cstdio>
#include <algorithm>
#define N 3000010
using namespace std;
int n,k,i,a[N];
void SDO(int,int);
int main()
{
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
SDO(1,n);
return 0;
}
void SDO(int L,int R)
{
if(L==R){printf("%d",a[L]);return;}
int LL=L,RR=R,V,aux;
V=a[(LL+RR)>>1];
do
{
while(a[LL]<V)LL++;
while(a[RR]>V)RR--;
if(LL<=RR){aux=a[LL];a[LL]=a[RR];a[RR]=aux;LL++;RR--;}
}while(LL<=RR);
if(k<=RR)SDO(L,RR);
else SDO(LL,R);
}