Cod sursa(job #1798938)

Utilizator medicinedoctoralexandru medicinedoctor Data 5 noiembrie 2016 16:37:09
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <vector>
#include <algorithm>
//#include <iostream>
//#include <iterator>

using namespace std;

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

vector <vector <int> > a;
int k; // k - ordinea statisticii

void read()
{
    int n,x; // x - elementul curent , n - numarul de elemente
    cin >> n >> k;
    a.resize(1000000);
    for (int i=0; i<n; i++)
    {
        cin >> x ;
        a[x/1000000].push_back(x);
    }
}

void solve()
{
    for (int c=0,i=0; c<k; i++)
    {
        if (c+a[i].size()>=k)
        {
            sort(a[i].begin(),a[i].end());
            k=k-c;
            cout << a[i][k-1];
            c=k;
        }
        else c=c+a[i].size();
    }
}

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