Cod sursa(job #657886)
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
const int N=500001;
const int P=8233;
int cont[525000],poz[525000];
int v[N],final[N],n;
void insert(int x){
int hash,pozitie,val;
val=v[x];
hash=(v[x]/P);
pozitie=poz[hash];
poz[hash]++;
final[poz[hash]]=v[x];
while(final[pozitie]>v[x]){
final[pozitie+1]=final[pozitie];
pozitie--;
}
final[pozitie+1]=v[x];
}
int main(){
int i;
in>>n;
for(i=1;i<=n;++i){
in>>v[i];
cont[(v[i]/P)]++;
}
for(i=1;i<525000;++i){
poz[i]=cont[i-1]+poz[i-1];
}
for(i=1;i<=n;++i){
insert(i);
}
for(i=1;i<=n;++i){
out<<final[i]<<" ";
}
return 0;
}