Cod sursa(job #455795)

Utilizator sapiensCernov Vladimir sapiens Data 14 mai 2010 11:06:43
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
using namespace std;

ifstream fin; ofstream fout;
long a[3000002],i,n,k;

inline long partition (long l,long r) {
       long z=l;
       swap (a[(l+r)/2],a[r]);
       for (long u=l; u<r; u++)
           if (a[u]<a[r]) {
              swap (a[u],a[z]);
              z++;
           }
       swap (a[z],a[r]);
       return z;
}

void qsort (long x,long y) {
     if (x<=y) {
        long np=partition (x,y);
        if (np==k) fout<<a[np]<<endl;
        if (np<k) qsort (np+1,y);
        if (np>k) qsort (x,np-1);
     }
}

int main () {
    fin.open ("sdo.in"); fout.open ("sdo.out");
    fin>>n>>k;
    for (i=1; i<=n; i++) fin>>a[i];
    qsort (1,n);
    fin.close (); fout.close ();
    return 0;
}