Pagini recente » Cod sursa (job #1270987) | Cod sursa (job #627939) | Cod sursa (job #118563) | Cod sursa (job #1183703) | Cod sursa (job #392805)
Cod sursa(job #392805)
#include <fstream>
#include <cstdlib>
#include <ctime>
#define N 3000005
using namespace std;
int A[N];
int poz(int a, int b, int k)
{
int t,x=a,y=b,r=a+rand()%(b-a+1);
t=A[a]; A[a]=A[r]; A[r]=t;
for (int i=0, j=-1; x<y; x+=i, y+=j)
if (A[x]>A[y])
{
t=A[x]; A[x]=A[y]; A[y]=t;
t=i; i=-j; j=-t;
}
if (x==k) return A[k];
if (x<k) return poz(x+1,b,k);
return poz(a,x-1,k);
}
int main()
{
srand(time(NULL));
int n,k;
ifstream f("sdo.in");
ofstream g("sdo.out");
f>>n>>k;
for (int i=1; i<=n; i++) f>>A[i];
g<<poz(1,n,k);
return 0;
}