Cod sursa(job #2607751)

Utilizator RobertLearnsCDragomir Robert. RobertLearnsC Data 30 aprilie 2020 10:03:22
Problema Statistici de ordine Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.07 kb
#include <bits/stdc++.h>
using namespace std;

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

int n , nthElement, element;
priority_queue<int,vector<long long>,greater<int>> v;

int fr1[1000001], fr2[1001][1001];

int main(){
    in >> n >> nthElement;
    for(int i = 0 ; i < n ; ++i) {
        in >> element;
        if(element > 1000000) {
            fr2[element / 1000000][element % 1000000]++;
        } else {
            fr1[element]++;
        }
    }

    int currElem = 0;
    for(int i = 0; i <= 1000000; i++) {
        if(fr1[i]) {
            if(currElem + fr1[i] >= nthElement) {
                out << i;
                return 0;
            }
            currElem += fr1[i];
        }
    }
    for(int i = 0; i <= 1000; i++) {
        for(int j = 0; j <= 1000; j++) {
            if(fr2[i][j]) {
                if(currElem + fr2[i][j] >= nthElement) {
                    out << i * 1000000 + j;
                    return 0;
                }
                currElem += fr2[i][j];
            }
        }
    }
    return 0;
}