Cod sursa(job #1784169)

Utilizator UrsuDanUrsu Dan UrsuDan Data 19 octombrie 2016 20:34:20
Problema Statistici de ordine Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in ("sdo.in");
ofstream out ("sdo.out");

int k;
int v[1000010];

int piv(int st,int dr,int p)
{
    int i=st,j=dr,val=v[p];
    while(i<j)
    {
        while(v[i]<val)
            i++;
        while(v[j]>val)
            j--;
        if(i<j && v[i]!=v[j])
            swap(v[i],v[j]);
        else
            return j;
    }
}

void qsort(int st,int dr)
{

    int p=k;
    p=piv(st,dr,p);
    if(p==k)
    {
        out<<v[p];
        return;
    }
    if(p<k)
        qsort(p+1,dr);
    else
        qsort(st,p-1);
}

int main()
{
    int n,i;
    in>>n>>k;
    for(i=1; i<=n; i++)
        in>>v[i];
    qsort(1,n);
    return 0;
}