Cod sursa(job #836023)

Utilizator davidoceaSintamarian David davidocea Data 16 decembrie 2012 11:48:24
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <cstdio>
int f[500005];
int freq[10];
int v[500005];
int main (){
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    int n,i,e,j,l,k;
    scanf("%d",&n);
    for(i=1;i<=n;++i){
		scanf("%d",&f[i]);
	} 
    for(e=1,l=1;e<12;++e,l*=10){
        for(j=0;j<=10;++j){
			freq[j]=0;
		}
		for(i=1;i<=n;++i){
            k=(f[i]/l)%10;
            ++freq[k+1];
        }
        for(i=1;i<=11;++i){
			freq[i]+=freq[i-1];
		}
		for(i=1;i<=n;++i){
            k=(f[i]/l)%10;
            ++freq[k];
            v[freq[k]]=f[i];
        }
        for(i=1;i<=n;++i){
            f[i]=v[i];
		}
    }
 
    for(i=1;i<=n;++i){
        printf("%d ",f[i]);
	}
}