Pagini recente » Cod sursa (job #2370425) | Cod sursa (job #2388939) | Cod sursa (job #807169) | Cod sursa (job #2093682) | Cod sursa (job #1408266)
#include <stdio.h>
#include <stdlib.h>
int v[4000001];
int main()
{
int n,k,i,begin,end,m,b,e,aux;
FILE *fin,*fout;
fin=fopen("sdo.in","r");
fscanf(fin,"%d%d",&n,&k);
for(i=1; i<=n; i++)
fscanf(fin,"%d",&v[i]);
fclose(fin);
begin=1;
end=n;
while(begin<end)
{
m=v[(begin+end)/2];
b=begin;
e=end;
while(b<=e)
{
while(v[b]<m)
b++;
while(v[e]>m)
e--;
if(b<=e)
{
aux=v[b];
v[b]=v[e];
v[e]=aux;
b++;
e--;
}
}
if(k<=e)
end=e;
else
if(k>=b)
begin=b;
else
begin=end=k;
}
fout=fopen("sdo.out","w");
fprintf(fout,"%d\n",v[k]);
fclose(fout);
return 0;
}