Cod sursa(job #663215)

Utilizator cristicecCristian Uricec cristicec Data 17 ianuarie 2012 23:44:42
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream>

using namespace std;
int n;
int a[500001], v[10][500001];

int main(){
	ifstream f("algsort.in");
	ofstream g("algsort.out");
	f>>n;
	
	int max=-1;
	for(int i=1;i<=n;i++){
		f>>a[i];
		if(a[i]>max)
			max=a[i];
	}
	
	int k=1;
	int j=0;
	int t;
	while(max){
		max=max/10;
		j++;
	}
	
	while(j>=1){
		for(int i=1;i<=n;i++){
			t=(a[i]/k)%10;
			v[t][0]++;
			v[t][v[t][0]]=a[i];
		}
		int r=0;
    for(int i=0;i<=9;i++){
			for(int p=1; p<=v[i][0]; p++){
				r++;
				a[r]=v[i][p];
				v[i][p]=0;
			}
		
		v[i][0]=0;
		
		}
		k=k*10;
		j--;
	
	}
	
	for(int i=1;i<=n-1;i++)
		g<<a[i]<<" ";
	g<<a[n];

	return 0;
}