Cod sursa(job #1239684)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 9 octombrie 2014 16:29:12
Problema Statistici de ordine Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <cstdlib>
#include <ctime>
#define DIM 3000011
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
int n,k;
int v[DIM];

inline int poz(int st,int dr){
    int ii=0,jj=-1,aux;
    while(st<dr){
        if(v[st]>v[dr]) aux=v[dr],v[dr]=v[st],v[st]=aux,aux=ii,ii=-jj,jj=-aux;
        st+=ii,dr+=jj;
    }
    return st;
}

int main(void){
    register int i,j,p,aux;

    f>>n>>k;
    for(i=1;i<=n;i++) f>>v[i];
    srand(time(0));
   // for(i=1;i<=n;i++) j=rand()%n+1,aux=v[i],v[i]=v[j],v[j]=aux;

    i=1,j=n;
    while(p!=k){
        p=poz(i,j);
        if(p>k) j=p-1;
        else i=p+1;
    }

    g<<v[p];
    return 0;
}