Pagini recente » Cod sursa (job #1837925) | Cod sursa (job #1915846) | Cod sursa (job #2134367) | Cod sursa (job #2808800) | Cod sursa (job #1149147)
#include <iostream>
#include <fstream>
using namespace std;
int v[3000000];
void schimb (int a,int b){
int aux=v[a];
v[a]=v[b];
v[b]=aux;
}
int pozitie (int st,int dr);
void quicksort(int st,int dr){
if (st>=dr){
return;
}
int p=pozitie(st,dr);
quicksort(st,p-1);
quicksort(p+1,dr);
}
int pozitie(int st,int dr){
int i=st,j=st;
while (i<dr){
if (v[i]<v[dr]){
schimb (i,j);
j++;
}
i++;
}
schimb(j,dr);
return j;
}
int main()
{
ifstream in ("sdo.in");
ofstream out ("sdo.out");
int n,k;
in>>n>>k;
for (int i=1;i<=n;i++){
in>>v[i];
}
int j;
for (int i=n/2;i<n;i++){
j=v[i]*i%n+1;
schimb(i,j);
}
quicksort(1,n);
out<<v[k];
return 0;
}