Cod sursa(job #1019438)

Utilizator Emanuel9Dumitru Emanuel Cristian Emanuel9 Data 31 octombrie 2013 08:23:48
Problema Statistici de ordine Scor 60
Compilator c Status done
Runda Arhiva educationala Marime 0.86 kb
#include "stdio.h"
#include "stdlib.h"

int v[3000000],n,poz;

void qs(int s,int d)
{
    if(s<d){
        int aux;
        int i=s;
        int j=d;
        int  pivot = v[(s+d)/2];

        while(i<=j){

            while(v[i]<pivot){
                i++;
            }
            while(v[j]>pivot){
                j--;
            }
            if(i<=j){
                aux=v[i];
                v[i]=v[j];
                v[j]=aux;
                i++;
                j--;
            }
        }
        qs(s,j);
        qs(i,d);
    }
}
int main()
{
    freopen("sdo.in", "r", stdin);
    freopen("sdo.out", "w", stdout);

    scanf("%d%d", &n,&poz);
    int i;
    for (i=0; i<n; i++){
        scanf("%d", &v[i]);
    }

    qs(0, n-1);
    printf("%d",v[poz-1]);
    fclose(stdin);
    fclose(stdout);
    return 0;
}