Pagini recente » Cod sursa (job #2596333) | Cod sursa (job #1704654) | Cod sursa (job #2652618) | Cod sursa (job #257248) | Cod sursa (job #1333811)
#include <fstream>
#include <ctime>
#include <cstdlib>
using namespace std;
int v[3000001];
ifstream fin("sdo.in");
ofstream fout("sdo.out");
void quick(int a , int b , int k){
if ( b <= a ){
fout<<v[a];
return;
}
int c=(rand()%(b-a+1))+a;
v[c]=v[b]^v[c]^(v[b]=v[c]);
int i=a,j=b-1;
while ( i <= j ){
if ( v[i] <= v[b] ){ i++; continue; }
if ( v[j] > v[b] ) { j--; continue; }
v[i]=v[j]^v[i]^(v[j]=v[i]);
++i;
--j;
}
v[i]=v[b]^v[i]^(v[b]=v[i]);
if ( i == k )
fout<<v[k];
if ( i > k )
quick(a,i-1,k);
if ( i < k )
quick(i+1,b,k);
}
int main()
{
int n,i,x;
fin>>n;
fin>>x;
for ( i=1 ; i<=n ; i++ ){
fin>>v[i];
}
quick(1, n,x);
return 0;
}