Cod sursa(job #1320553)

Utilizator YusukeFMI Mares Medar Razvan Yusuke Data 18 ianuarie 2015 01:59:40
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <list>
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[500005],i,maxim,n,k;
void radix(int* a, int lungime,int maxim){
    int nr;
	list<int> bucket[10];
	for(nr=1;maxim>=nr;nr*=10){
		for(i=0; i<lungime; i++)
			bucket[(a[i]/nr)%10].push_back(a[i]);
		for(k=i=0;i<10;bucket[i++].clear())
			for (list<int>::iterator j=bucket[i].begin();j!=bucket[i].end();a[k++]=*(j++));
	}
}
int main() {
    f>>n;
	for(i=0;i<n;i++){
        f>>a[i];
		if(a[i]>maxim) maxim=a[i];
	}
	radix(a,n,maxim);
	for(i=0;i<n;i++)
		g<<a[i]<<" ";
}