Cod sursa(job #3201760)

Utilizator Tudor06MusatTudor Tudor06 Data 9 februarie 2024 18:30:00
Problema Statistici de ordine Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;

const int NMAX = 3e6;

class InParser {
private:
	FILE *fin;
	char *buff;
	int sp;

	char read_ch() {
		++sp;
		if (sp == 4096) {
			sp = 0;
			fread(buff, 1, 4096, fin);
		}
		return buff[sp];
	}

public:
	InParser(const char* nume) {
		fin = fopen(nume, "r");
		buff = new char[4096]();
		sp = 4095;
	}
	
	InParser& operator >> (int &n) {
		char c;
		while (!isdigit(c = read_ch()));
        n = 0;
		do {
			n = 10 * n + c - '0';
		} while (isdigit(c = read_ch()));
		return *this;
	}
};

int v[NMAX + 1];

int main() {
    InParser fin( "sdo.in" );
    ofstream fout( "sdo.out" );
    int n, k;
    fin >> n >> k;
    for ( int i = 0; i < n; i ++ ) fin >> v[i];
    nth_element( v, v + k - 1, v + n );
    fout << v[k - 1];
}