Cod sursa(job #1549279)

Utilizator redcrocodileIlies Andreea redcrocodile Data 12 decembrie 2015 10:57:42
Problema Statistici de ordine Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
#include <vector>
#include <cstdlib>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");

vector<int> V;
int n,i,x,k;

int a(std::vector <int> &V, size_t start, size_t stop)
{
    int pivot,i,j;
    pivot = V[start + rand() % (stop-start)];
    i = start-1; j = stop + 1;
    while(1)
    {
        do
        j--;
        while (V[j]>pivot);
        do
        i++;
        while (V[i]<pivot);
        if (i<j)
         swap(V[i],V[j]);
        else return i;
    }
}
void sortare(std::vector <int> &V, size_t start, size_t stop, int k)
{
    int i;
    i = a(V,start,stop);
    if (k==i) g<<V[k];
    else
        if (k>i) sortare(V,i+1,V.size()-1,k);
          else sortare(V,0,i,k);
}
int main()
{
    f>>n>>k;
    for (i=1;i<=n;i++)
    {
        f>>x; V.push_back(x);
    }
    sortare(V,0,V.size()-1,k-1);
    return 0;
}