Pagini recente » Cod sursa (job #1457128) | Cod sursa (job #2859779) | Cod sursa (job #2714595) | Cod sursa (job #1229135) | Cod sursa (job #370249)
Cod sursa(job #370249)
#include <fstream>
using namespace std;
#define MAX_N 3000005
ifstream fin ("sdo.in");
ofstream fout ("sdo.out");
int A[MAX_N], N, K, B[MAX_N];
inline void rad(int N, int byte, int A[], int B[])
{
int cnt[256], ind[256],i;
memset(cnt, 0, sizeof(cnt));
for(i=1; i <= N; ++i) ++cnt[(A[i]>>byte)&255];
ind[0]=1;
for(i=1; i < 256; ++i) ind[i]=ind[i-1]+cnt[i-1];
for(i=1; i <= N; ++i) B[ind[(A[i]>>byte)&255]++]=A[i];
}
inline void radix(int A[], int N)
{
rad(N, 0, A, B);
rad(N, 8, B, A);
rad(N, 16, A, B);
rad(N, 24, B, A);
}
int main()
{
fin >> N >> K;
for(int i = 1; i <= N; ++i)
fin >> A[i];
radix(A, N);
fout << A[K] << "\n";
}