Cod sursa(job #1959997)

Utilizator darian2001Clodnischi Darian Antonio darian2001 Data 10 aprilie 2017 09:26:56
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.37 kb
#include <bits/stdc++.h>

using namespace std;

FILE* fin;
FILE* fout;
int in_loc,out_loc;
char in_buff[50000],out_buff[4096];

void read_init(const char* nume)
{
    fin=fopen(nume,"r");
    in_loc=49999;
}
char read_ch()
{
    in_loc++;
    if(in_loc==50000)
    {
        in_loc=0;
        fread(in_buff,1,50000,fin);
    }
    return in_buff[in_loc];
}
int read_u32()
{
    int numar=0;
    char c;
    while(!isdigit(c=read_ch())&&c!='-');
    int sgn=1;
    if(c=='-')sgn=-1;
    else numar=c-'0';
    while(isdigit(c=read_ch()))
        numar=numar*10+c-'0';
    return numar*sgn;
}

void write_init(const char* nume)
{
    fout=fopen(nume,"w");
    out_loc=0;
}
void write_ch(char c)
{
    if(out_loc==4096)
    {
        fwrite(out_buff,1,4096,fout);
        out_loc=0;
        out_buff[out_loc++]=c;
    }
    else out_buff[out_loc++]=c;
}
void write_u32(int u32)
{
    if(u32<=9)write_ch(u32+'0');
    else{
        write_u32(u32/10);
        write_ch(u32%10+'0');
    }
}
void write_appendix()
{
    fwrite(out_buff,1,out_loc,fout);
    fclose(fout);
}
vector <int> v;
int n,k;

int main()
{
    read_init("sdo.in");
    write_init("sdo.out");
    n=read_u32();
    k=read_u32();
    for(int i=1;i<=n;i++)
        v.push_back(read_u32());
    sort(v.begin(),v.end());
    write_u32(v[k-1]);
  write_appendix();
}