Mai intai trebuie sa te autentifici.
Cod sursa(job #777106)
| Utilizator | Data | 11 august 2012 00:21:34 | |
|---|---|---|---|
| Problema | Statistici de ordine | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.89 kb |
#include <fstream>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
int a[500002],n,k,i;
void quicksort(int a[] , int left , int right,int k)
{
int i=left,j=right,tmp;
int pivot=a[left + rand() % (right-left+1)];
while(i<=j)
{
while(a[i]<pivot) i++;
while(a[j]>pivot) j--;
if (i<=j)
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
i++;
j--;
}
}
if (left<j)
{ if(j-left+1>=k)
quicksort(a,left,j,k);
}
if (i<right)
{if (j-left+1<k) quicksort(a,i,right,k-(j-left+1));}
}
int main()
{
f>>n>>k;
for(i=1; i<=n ;i++) f>>a[i];
quicksort(a,1,n,k);
g<<a[k]<<" ";
}
