Cod sursa(job #2321157)

Utilizator mariusgrafuMarius Grafu mariusgrafu Data 15 ianuarie 2019 19:07:50
Problema Statistici de ordine Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

int sdo(vector<int> v, int k) {

    int left = 0, right = v.size() - 1;

    while(left != right) {
        if(v[left] > v[k]) {
            swap(v[left], v[k]);
        }
        if(v[k] > v[right]) {
            swap(v[k], v[right]);
        }
        left = min(left + 1, k);
        right = max(right - 1, k);
    }

    return v[k];

}

int main()
{
    int n, k;
    vector<int> v;
    ifstream in("sdo.in");
    ofstream out("sdo.out");

    in >> n >> k;

    k--;

    for(int i = 0; i < n; ++i) {
        int x;
        in >> x;
        v.push_back(x);
    }
    out << sdo(v, k);

    in.close(); out.close();
    return 0;
}