Cod sursa(job #641479)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 28 noiembrie 2011 16:49:53
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

using namespace std;

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

const int N=500001;
const int P=46691;

short int cont[100000],poz[100000];
int v[N],final[N],n;

void insert(int x){
	int hash,pozitie;
	hash=(v[x]/P);
	poz[hash]++;
	pozitie=poz[hash];
	final[poz[hash]]=v[x];
	while(final[pozitie]<final[pozitie-1]){
		swap(final[pozitie],final[pozitie-1]);
		pozitie--;
	}
}

int main(){
	int i;
	in>>n;
	for(i=1;i<=n;++i){
		in>>v[i];
		cont[(v[i]/P)]++;
	}
	for(i=1;i<100000;++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;
}