Cod sursa(job #1018803)
| Utilizator | Data | 29 octombrie 2013 23:16:58 | |
|---|---|---|---|
| Problema | Statistici de ordine | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <fstream>
#include<ctime>
#include<cstdlib>
#include<algorithm>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
long k,n,v[3000001],i,j,piv,aux;
void qstat(long st, long dr)
{i=st;j=dr;
piv=v[(st+dr)/2];
while(i<=j)
{while(v[i]<piv)
i++;
while(v[j]>piv)
j--;
if(i<=j)
{aux=v[i];v[i]=v[j];v[j]=aux;i++;j--;}
}
if(j==k)
g<<piv;
else
if(j<k)
qstat(j+1,dr);
else
qstat(st,i-1);
}
int main()
{f>>n>>k;
for(i=1;i<=n;i++)
f>>v[i];
qstat(1,n);
f.close();g.close();
return 0;
}
