Pagini recente » Cod sursa (job #1260533) | Cod sursa (job #988612) | Cod sursa (job #950733) | Cod sursa (job #467133) | Cod sursa (job #429104)
Cod sursa(job #429104)
#include<fstream>
#include<time.h>
#include<stdlib.h>
#define Nmax 3000010
using namespace std;
int v[Nmax],K,i,n;
void swap(int &a, int &b)
{
int aux=a; a=b; b=aux;
}
int sdo ( int s, int d )
{
int di=1,dj=0,i=s,j=d;
int p = i + rand() % (j-i+1);
swap(v[i],v[p]);
for(; i<j; i+=di,j-=dj)
if(v[i]>v[j])
{
swap(v[i],v[j]);
swap(di,dj);
}
if( i == K ) return v[i];
if( i > K ) return sdo(s,i-1);
else return 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];
g<<sdo(1,n);
f.close();
g.close();
return 0;
}