Cod sursa(job #1520220)

Utilizator SoniaFlorinaHorchidan Sonia-Florina SoniaFlorina Data 8 noiembrie 2015 15:12:43
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
using namespace std;
int v[3000000], n,k,stg,dr,li,ls,mij;
ifstream in("sdo.in");
ofstream out("sdo.out");

int main()
{ in>>n>>k;
int i;
for(i=1;i<=n;i++)
    in>>v[i];
li=1;
ls=n;
while(li<ls)
    {stg=li;
    dr=ls;
    mij=(li+ls)/2;
    while(stg<=dr)
        {while(stg<dr && v[dr]>v[mij])
            dr--;
        v[stg]=v[dr];
        while(stg<dr && v[stg]<v[mij])
            stg++;
        v[dr]=v[stg];
        v[stg]=v[mij];
        dr--;
        stg++;
        }
     if(k<=dr)
           ls=dr;
     else
        if(k>=stg)
            li=stg;
        else
            li=ls=k;
    }
out<<v[k];
    return 0;
}