Cod sursa(job #1846211)

Utilizator ASD135Radu M ASD135 Data 12 ianuarie 2017 12:54:55
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.48 kb
#include <cstdio>
#include <iostream>
#include <queue>
#include <algorithm>

using namespace std;


///parsare
 
bool digit[200];
 
 
const int SBUF=4096;
char BUF[SBUF];
int pbuf=SBUF;
 
char get_char()
{
    if(pbuf==SBUF)
    {
        pbuf=0;
        fread(BUF,SBUF,1,stdin);
    }
    return BUF[pbuf++];
}
 
char x;
 
int get_int()
{
    x=get_char();
 
    while(digit[x]==0)
        x=get_char();
 
    int rez=0;
 
    while(digit[x])
    {
        rez=rez*10+x-'0';
        x=get_char();
    }
 
    return rez;
}
 
int zece[8];
 
double get_double()
{
    x=get_char();
 
    while(digit[x]==0)
        x=get_char();
 
    int rez=0;
 
    while(digit[x])
    {
        rez=rez*10+x-'0';
        x=get_char();
    }
    if(x=='.')
    {
        int rez2=0;
        x=get_char();
 
        int cont=0;
 
        while(digit[x])
        {
            rez2=rez2*10+x-'0';
            cont++;
            x=get_char();
        }
 
        double fin=rez2;
        fin/=zece[cont];
        fin+=rez;
        return fin;
    }
    else
        return rez;
}
 
void jibril()
{
    zece[0]=1;
    for(int i=1; i<=8; i++)
    {
        zece[i]=zece[i-1]*10;
    }
 
    for(int i='0'; i<='9'; i++)
    {
        digit[i]=1;
    }
}
 
///parsare

const int Q=3000007;

int v[Q];


int main()
{
	freopen("sdo.in","r",stdin);
	freopen("sdo.out","w",stdout);

	jibril();
	
	int n,k;

	n=get_int();
	k=get_int();

	for(int i=0; i<n; i++)
	{
		v[i]=get_int();
	}

	nth_element(v,v+k-1,v+n);
	cout<<v[k-1];


    return 0;
}