Cod sursa(job #1021273)

Utilizator 3nTRoPYiorga dan 3nTRoPY Data 3 noiembrie 2013 16:29:47
Problema Statistici de ordine Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#include <iostream>
int v[3000000], n, k;

using namespace std;

void qsm(int s, int d)
{
 		 if(s>d)
 		 				return;
 		 int piv=(s+d)/2;
 		 int vp=v[piv];
 		 int i=s, j=d;
 		 while(i<=j)
 		 {
 		    while(v[i]<vp)
 		     i++;
	      while(v[j]>vp)
	       j--;
        if(i<=j)
        {
 						 v[i]=v[i]+v[j];
 						 v[j]=v[i]-v[j];
 						 v[i]=v[i]-v[j];
 						 i++;
 						 j--;
			  }
     }
     if(k>j)
        qsm(i, d);
     else
        qsm(s, j);
}

int main(int argc, char *argv[])
{
 		ifstream fin("sdo.in");
 		ofstream fout("sdo.out");
 		fin>>n>>k;
 		int i;
 		for(i=0;i<n;i++)
 		   fin>>v[i];
    qsm(0, n-1);
    fout<<v[k-1];
    return EXIT_SUCCESS;
}