Cod sursa(job #1557182)

Utilizator narcis_vsGemene Narcis - Gabriel narcis_vs Data 26 decembrie 2015 22:53:09
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
using namespace std;
ifstream fin; ofstream fout;
int a[3000002],i,n,k;
inline int partition (int l,int r) 
{
    int z=l;
    swap (a[(l+r)/2],a[r]);
    for (int 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 (int x,int y) 
{
     if (x<=y) 
	 {
        int np=partition (x,y);
        if (np==k)
		{
			fout<<a[np]<<"\n";
			exit(0);
		}
        if (np<k) qsort (np+1,y);
        else 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;
}