Cod sursa(job #1578037)

Utilizator DrumeaVDrumea Vasile DrumeaV Data 24 ianuarie 2016 09:33:41
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <stdio.h>
#include <string.h>
#include <algorithm>

using namespace std;

const int Mn = 1e4 + 5;
const int Mx = 3e6 + 7;

int pos = 0;
char buff[Mn];

void read(int &num)
{
    num = 0;
    char sign = '+';

    while (!isdigit(buff[pos]))
    {
        sign = buff[pos];

        if (++pos == Mn)
           fread(buff,1,Mn,stdin),pos = 0;
    }

    while (isdigit(buff[pos]))
    {
        num = num * 10 + buff[pos] - '0';

        if (++pos == Mn)
           fread(buff,1,Mn,stdin),pos = 0;
    }

    if (sign == '-')
       num *= -1;
}

int n,k;
int ar[Mx];

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

     read(n);
     read(k);

     for (int i = 1;i <= n;read(ar[i]),i++);

     nth_element(ar + 1,ar + k,ar + n + 1);

     printf("%d\n",ar[k]);

  return 0;
}