Cod sursa(job #2563335)
Utilizator | Brasoveanu Mircea denmircea | Data | 1 martie 2020 10:47:24 |
---|---|---|---|
Problema | Statistici de ordine | Scor | 90 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <bits/stdc++.h>
#define dim 3000005
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int v[dim],n,k,i;
void qs(int st,int dr,int k)
{
if(st==dr)
return;
int mid=(v[st]+v[dr])/2;
int j=st-1;
for(int i=st; i<=dr; i++)
{
if(v[i]<=mid)
swap(v[++j],v[i]);
}
if(j-st+1<k)
qs(j+1,dr,k-(j-st+1));
else
qs(st,j,k);
}
int main()
{
fin>>n>>k;
for(i=1; i<=n; i++)
{
fin>>v[i];
}
qs(1,n,k);
fout<<v[k];
}