Cod sursa(job #1560646)

Utilizator ArchazeyBaltatu Andrei-Mircea Archazey Data 2 ianuarie 2016 22:52:10
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<bits/stdc++.h>
using namespace std;

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

const int NMAX=3000005;

int n,k,a[NMAX];

void Qsort(int st,int dr)
{
    if (st==dr) {fout<<a[st]<<"\n";return ;}
    int i,poz,cnt=0,last;
    poz=rand()%(dr-st+1);
    poz+=st;
    //punem la sfarsit
    swap(a[poz],a[dr]);

    last=st;
    for (i=st;i<dr;i++)
        if (a[i]<=a[dr])
        {
            swap(a[i],a[last]);
            last++;
        }
    swap(a[dr],a[last]);

    if (k<=last) Qsort(st,last);
    else Qsort(last+1,dr);
}

int main()
{
    int i;
    fin>>n>>k;
    for (i=1;i<=n;i++) fin>>a[i];
    srand(time(0));
    Qsort(1,n);
    return 0;
}