Pagini recente » Rating Cristian Cerbusca (keninje) | Cod sursa (job #2747942) | Cod sursa (job #3000807) | Cod sursa (job #2397702) | Cod sursa (job #2323391)
#include <iostream>
#include <fstream>
#include <vector>
#define pb push_back
using namespace std;
void mergeS(int l,int r,int *v){
if(l==r) return;
int m = (l+r)/2;
mergeS(l,m,v);
mergeS(m+1,r,v);
vector<int> x;
int i=l;
int j=m+1;
while(i<=m && j<=r){
if(v[i]<v[j]){
x.pb(v[i]);
i++;
}else{
x.pb(v[j]);
j++;
}
}
if(i==m+1 && j<=r){
for(int z=j;z<=r;z++) x.pb(v[z]);
}else{
if(i<=m && j==r+1)
for(int z=i;i<=m;i++) x.pb(v[z]);
}
for(int z=r;z>=l;z--){
v[z] = x.back();
x.pop_back();
}
}
int main()
{
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int n,k,v[3000000];
fin>>n>>k;
for(int i=1;i<=n;i++) fin>>v[i];
mergeS(1,n,v);
fout<<v[k];
return 0;
}