Pagini recente » Cod sursa (job #1121213) | Cod sursa (job #278) | Cod sursa (job #124411) | Cod sursa (job #2406289) | Cod sursa (job #373436)
Cod sursa(job #373436)
#include<fstream>
using namespace std;
int s[3000001];
int part(int st, int dr){
int i, j, ii, jj, aux;
ii=1;jj=0;i=st;j=dr;
while(i<j){
if(s[i]>s[j]){
aux=s[i];s[i]=s[j];s[j]=aux;
aux=ii;ii=-jj;jj=-aux;
}
i+=ii;j+=jj;
}
return i;
}
int qusort(int st, int dr, int k){
if(st<dr){
int m=part(st,dr);
if(m==k) return s[k];
if(k<m) return qusort(st,m-1,k);
if(k>m) return qusort(m+1,dr, k-m-1);
}
if(k==0) return s[st];
else return -1;
}
int main(){
ifstream f("sdo.in");
ofstream g("sdo.out");
int n, k, i;
f>>n>>k;
--k;
for(i=0;i<n;i++)
f>>s[i];
i=qusort(0,n-1,k);
g<<i<<'\n';
g.close();
return 0;
}