Cod sursa(job #2399724)

Utilizator vladdudauDudau Vlad vladdudau Data 7 aprilie 2019 22:14:50
Problema Statistici de ordine Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#define N 3000001
using namespace std;
int v[N],k,n;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
void Read()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
        fin>>v[i];
}
int pivotare(int s,int d)
{
    int i,j,aux,pasi=0,pasj=1;
    i=s;
    j=d;
    while(i<j)
    {
        if(v[i]>v[j])
        {
            aux=v[i];
            v[i]=v[j];
            v[j]=aux;
            pasi=1-pasi;
            pasj=1-pasj;
        }
        i=i+pasi;
        j=j-pasj;
    }
    return i;
}
void QS(int s,int d)
{
    int p=pivotare(s,d);
    if(s<d)
    {
        QS(s,p-1);
        QS(p+1,d);
    }
}
void Solve()
{
    QS(1,n);
    fout<<v[k];
}
int main()
{
    Read();
    Solve();
    return 0;
}