Cod sursa(job #641466)

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

using namespace std;

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

const int N=500001;
const int P=65213;

int cont[70000],poz[70000];
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<10000;++i){
		poz[i]=cont[i]+poz[i-1];
	}
	for(i=1;i<=n;++i){
		insert(i);
	}
	for(i=1;i<=n;i++){
		out<<final[i]<<" ";
	}
	return 0;
}