Cod sursa(job #644275)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 5 decembrie 2011 22:52:37
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>

using namespace std;

ifstream in("algsort.in");
ofstream out("algsort.out");

const int N=500001;
const int P=8233;

int cont[525000];
int v[N],final[N],n;

void insert(int x){
	int hash,pozitie,val;
	val=v[x];
	hash=(v[x]/P);
	pozitie=cont[hash];
	cont[hash]++;
	final[cont[hash]]=v[x];
	while(final[pozitie]>v[x]){
		final[pozitie+1]=final[pozitie];
		pozitie--;
	}
	final[pozitie+1]=v[x];
}

int main(){
	int i,pozant=0,contant,aux;
	in>>n;
	for(i=1;i<=n;++i){
		in>>v[i];
		cont[(v[i]/P)]++;
	}
	contant=cont[0];
	for(i=1;i<525000;++i){
		aux=pozant+contant;
		contant=cont[i];
		pozant=aux;
		cont[i]=aux;
	}
	for(i=1;i<=n;++i){
		insert(i);
	}
	for(i=1;i<=n;++i){
		out<<final[i]<<" ";
	}
	return 0;
}