Cod sursa(job #726565)

Utilizator BlueStrutAndrei Prahoveanu BlueStrut Data 27 martie 2012 12:29:42
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <cstdio>
using namespace std;
int t,i,n,a[500002],b[500002],c[13];
bool ok,ok2;
int main()
{
	freopen("algsort.in","r",stdin);
	freopen("algsort.out","w",stdout);
	scanf("%d",&n);
	for (i=1;i<=n;i++)	scanf("%d",&a[i]);
	ok=true;
	t=1;
	while (ok)
	{
		for (i=-1;i<=9;i++) c[i]=0;
		for (i=1;i<=n;i++)	c[a[i]/t%10]++;
		for (i=1;i<=9;i++)	c[i]=c[i-1]+c[i];
		for (i=1;i<=n;i++)	b[++c[a[i]/t%10-1]]=a[i];
		for (i=1;i<=n;i++)	a[i]=b[i];
		t=t*10;
		if (c[0]==n) ok=false;
	}
	for (i=1;i<=n;i++)
		printf("%d ",a[i]);
	printf("\n");
	return 0;
}