Cod sursa(job #1520261)

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


int main()
{int i;
in>>n>>k;
for(i=1; i<=n; i++)
    in>>v[i];
li=1;
ls=n;
while(li<ls)
      {stg=li;
      dr=ls;
      mij=v[(li+ls)/2];
      while(stg<=dr)
            {while(v[stg]<mij)
                stg++;
            //cout<<"stg="<<stg<<' ';
            while(v[dr]>mij)
                dr--;
            //cout<<"\ndr="<<dr<<endl;
            if(stg<=dr)
                {aux=v[stg];
                v[stg]=v[dr];
                v[dr]=aux;
                stg++;
                dr--;
                }
            }
     if(k<=dr)
         ls=dr;
     else
        if(k>=stg)
              li=stg;
          else
              {li=k;
              ls=k;}

      }
    /*for(i=1; i<=n; i++)
        cout<<v[i]<<' ';
    cout<<endl;*/
out<<v[k];
in.close();
out.close();
      return 0;
}