Pagini recente » Cod sursa (job #338291) | Cod sursa (job #1351547) | Cod sursa (job #528691) | Cod sursa (job #2728023) | Cod sursa (job #430226)
Cod sursa(job #430226)
#include<fstream>
#include<time.h>
#include<stdlib.h>
#define Nmax 3000010
using namespace std;
int v[Nmax],K,i,n;
void sdo ( int s, int d )
{
int i=s,j=d,di=0,dj=1,aux;
int p = i + rand() % (j-i+1) ;
//int p = v [ ((i+j)>>1)+1 ];
aux=v[i]; v[i]=v[p]; v[p]=aux;
while(i<j)
{
if(v[i]>v[j])
{
aux=v[i]; v[i]=v[j]; v[j]=aux;
aux=di; di=dj; dj=aux;
}
i+=di;
j-=dj;
}
if( i == K ) return ;
if( i > K ) sdo(s,i-1);
else sdo(i+1,d);
}
int main()
{
srand(time(0));
ifstream f("sdo.in");
ofstream g("sdo.out");
f>>n>>K;
for(i=1;i<=n;i++)
f>>v[i];
sdo(1,n);
g<<v[K];
f.close();
g.close();
return 0;
}