Pagini recente » Cod sursa (job #2719460) | Cod sursa (job #145207) | Cod sursa (job #1479173) | Cod sursa (job #929756) | Cod sursa (job #1019337)
#include<stdio.h>
#include<cstdlib>
using namespace std;
FILE*f=fopen("sdo.in","r");
FILE*g=fopen("sdo.out","w");
int n,k,v[3000001];
int pivoteaza(int st,int dr)
{
int piv=st+rand()%(dr-st+1);
int i=st;
int j=dr;
while(1)
{
while(v[i]<v[piv])
++i;
while(v[j]>v[piv])
--j;
if(i<j)
{
int aux=v[i];
v[i]=v[j];
v[j]=aux;
}
else
return j;
}
}
void cauta(int st,int dr)
{
if(st<dr)
{
int piv=pivoteaza(st,dr);
if(piv>=k)
cauta(st,piv);
else
cauta(piv+1,dr);
}
}
int main()
{
fscanf(f,"%d%d",&n,&k);
for(int i=1;i<=n;++i)
fscanf(f,"%d",&v[i]);
cauta(1,n);
fprintf(g,"%d",v[k]);
fclose(f);
fclose(g);
return 0;
}