Cod sursa(job #1019875)

Utilizator tudor.rotarusTudor Rotarus tudor.rotarus Data 1 noiembrie 2013 02:00:10
Problema Statistici de ordine Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>

using namespace std;

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

int ok,n,k;
long a[200000000];

int poz(int p,int u)
{long aux;
int piv,x;
piv=a[p];
while(p<u)
{
    if(a[p]>a[u])
    {
        aux=a[p];
        a[p]=a[u];
        a[u]=aux;
    }

 if(a[p]==piv)
        u--;
    else p++;
}
x=p;
return x;
}

void quick(int p,int u)
{ int x;
    if(p<u&&ok==1)
    {
        x=poz(p,u);
        if(x==k)
           {g<<a[k];
            ok=0;
           }
        quick(p,x-1);
        quick(x+1,u);
    }
}

int main()
{int i;

ok=1;
f>>n>>k;
for(i=1;i<=n;i++)
{
    f>>a[i];
}

quick(1,n);

g.close();

return 0;
}