Cod sursa(job #1281380)

Utilizator TibixbAndrei Tiberiu Tibixb Data 3 decembrie 2014 08:18:56
Problema Statistici de ordine Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<fstream>
#include<ctime>
#include<cstdlib>
using namespace std;
int n, v[3000003], nr, i;
ifstream in("sdo.in");
ofstream out("sdo.out");
int poz(int p, int u){
    int t=p+rand()%(u-p);
    int i=p; int j=u;
    int ii=0; int jj=-1;
    while(i!=j){
        if(v[i]>v[j]){
            swap(v[i], v[j]);
            swap(ii, jj);
            ii=-ii;
            jj=-jj;
        }
        i+=ii;
        j+=jj;
    }
    return i;
}
void sort(int p, int u){
    int k=poz(p, u);
    if(k==nr){
        out<<v[k];
        return;
    }
    if(k>nr)
        sort(p, k-1);
    else
        sort(k+1, u);
}
int main(){
    srand(time(0));
    in>>n>>nr;
    for(i=1; i<=n; i++)
        in>>v[i];
    sort(1, n);
return 0;
}