Cod sursa(job #2345492)

Utilizator cc4infinityCojocaru Catalin cc4infinity Data 16 februarie 2019 13:35:05
Problema Statistici de ordine Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>

using namespace std;

int i,j,m,n,a,b,k,t[3000003];

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

int part(int l,int r)
{
    int i=l,j=r,k=t[l+rand()%(r-l+1)];
    while (1)
    {
        while (t[i]<k)
            i++;
        while (t[j]>k)
            j--;
        if (i<j)
            swap(t[i],t[j]);
          else return j;
    }
}

void srt(int l,int r)
{
    if (l==r) return;
    a=part(l,r);
    if (a>k)
        srt(l,a-1);
      else srt(a,r);
}

int main()
{
    fin>>n>>k;
    for (i=1;i<=n;i++)
        fin>>t[i];
    srt(1,n);
    fout<<t[k];
    return 0;
}