Cod sursa(job #1795158)

Utilizator elffikkVasile Ermicioi elffikk Data 2 noiembrie 2016 01:05:20
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

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

vector <int> a;
int k;

void read()
{
    int n;
    cin >> n >> k;
    a.resize(n);
    k--;
    for (int i=0; i<a.size(); i++)
    {
        cin >> a[i] ;
    }
}

void solve()
{
    bool sorted = false;
    while (!sorted) {
        sorted = true;
        int p = a[k], i = 0, j = a.size()-1;
        while (i<=j) {
            while(i<a.size() && a[i]<=p) i++;
            while(j>=0 && a[j]>p) j--;
            if (i<=j) {
                swap(a[i], a[j]);
                i++;
                j--;
                sorted = false;
            }
        }
    }

}

void write()
{
    cout << a[k-1] << '\n';
}

main()
{
    read();
    solve();
    write();
}