Cod sursa(job #663208)

Utilizator cristicecCristian Uricec cristicec Data 17 ianuarie 2012 23:29:02
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 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 x,t;
	int max=-1;
	for(int i=1;i<=n;i++){
		f>>a[i];
		if(a[i]>max)
			max=a[i];
	}
	
	int k=10;
	int l=1;
	int j=0;
	
	while(max){
		max=max/10;
		j++;
	}
	
	while(j>=1){
		for(int i=1;i<=n;i++){
			t=(a[i]%k)/l;
			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][0]=0;
		
		}
		k=k*10;
		l=l*10;
		j--;
	
	}
	
	for(int i=1;i<=n;i++)
		g<<a[i]<<" ";

	return 0;
}