Mai intai trebuie sa te autentifici.
Cod sursa(job #1261959)
Utilizator | Data | 12 noiembrie 2014 21:20:55 | |
---|---|---|---|
Problema | Statistici de ordine | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.75 kb |
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<ctime>
using namespace std;
int rez,n,i,j,k,v[3000005];
int Quick(int st,int dr,int x)
{
if (st==dr) return v[st];
int mij=st+(rand()%(dr-st+1));
int pivot=v[mij];
int i=st;
int j=dr;
while (i<=j)
{
while (v[i]<pivot) i++;
while (v[j]>pivot) j--;
if (i<=j) v[i]=v[i]^v[j]^(v[j]=v[i]),i++,j--;
}
if (j>=x) return Quick(st,j,x);else
return Quick(j+1,dr,x);
}
int main()
{
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
scanf("%d %d",&n,&k);
for (i=1;i<=n;i++)
scanf("%d",&v[i]);
srand(time(NULL));
printf("%d \n",Quick(1,n,k));
return 0;
}