Pagini recente » Cod sursa (job #461369) | Cod sursa (job #1119128) | Cod sursa (job #1749548) | Cod sursa (job #2206584) | Cod sursa (job #965984)
Cod sursa(job #965984)
//statistici de orinde, radix sort(10 ^ 9)
#include<fstream>
#include<cstring>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
const int Nmax = 3000009;
const int Limit = 255;
int N; int K; int A[Nmax]; int B[Nmax];
void Read(){
fin >> N >> K;
for(int i = 1; i <= N; ++i) fin >> A[i];
}
void Rad(const int byte, int A[], int B[]){
int Count[Limit], Ind[Limit];
memset(Count, 0, sizeof(Count));
for(int i = 1; i <= N; ++i) ++Count[(A[i] >> byte) & Limit];
Ind[0] = 1;
for(int i = 1; i <= Limit; ++i) Ind[i] = Ind[i - 1] + Count[i - 1];
for(int i = 1; i <= N; ++i) B[ Ind[ (A[i] >> byte) & Limit ]++] = A[i];
}
void Solve(){
Rad(0, A, B);
Rad(8, B, A);
Rad(16, A, B);
Rad(24, B, A);
}
void Print(){
fout << A[K];
}
int main(){
Read (); Solve (); Print ();
return 0;
}