Cod sursa(job #826733)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 1 decembrie 2012 10:27:22
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>
#define DIM 500010
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
long long n, i, a[DIM], b[DIM], v[10], nr, k, j;
int main(){
	f>>n;
	for(i=1; i<=n; i++)
		f>>a[i];
	f.close();
	nr=1;
	for(i=1; i<16; i++)
	{
		for(j=0; j<10; j++)
			v[j]=0;
		for(j=1; j<=n; j++)
			v[ (a[j]/nr)%10 ]++;
		for(j=1; j<10; j++)
			v[j]+=v[j-1];
		if(v[0]==n)
			break;
		for(j=n; j>0; j--)
			b[ v[ (a[j]/nr)%10 ]-- ]=a[j];
		for(j=1; j<=n; j++)
			a[j]=b[j];
		nr=nr*10;
	}
	for(i=1; i<=n; i++)
		g<<a[i]<<' ';
	g<<"\n";
	g.close();
	return 0;
}