Cod sursa(job #1673839)

Utilizator Ruben2015Parvu Ruben Ruben2015 Data 4 aprilie 2016 10:05:15
Problema Statistici de ordine Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("sdo.in");
ofstream g ("sdo.out");
int a[3000001],n,i,k;
int part (int st,int dr)
{
    int p,j,i;
    p=a[dr];j=st-1;
    for(i=st;i<=dr;i++)
    if(a[i]<=p)
    swap(a[++j],a[i]);
return j;
}
void quick (int st,int dr )
{
    int poz;
    poz=part(st,dr);
    if(poz!=k)
    {
        if(poz-st>1)
        quick(st,poz-1);
        if(dr-poz>1)
        quick(poz+1,dr);
    }
}
int main()
{ f>>n>>k;
for(i=1;i<=n;i++)
f>>a[i];
quick(1,n);
g<<a[k]<<" ";
    return 0;
}