Cod sursa(job #1115932)

Utilizator iordache.bogdanIordache Ioan-Bogdan iordache.bogdan Data 22 februarie 2014 10:44:56
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

using namespace std;

int n,a,b,c,i,v[5000005],Max,k,nn,vv[5000005],fr[12];
long long p;

int main() {
	ifstream f("algsort.in");
	ofstream g("algsort.out");
	
	f>>n;
	
	f>>v[1];
	Max=v[1];
	for(i=2;i<=n;i++){
		f>>v[i];
		if(Max<v[i])
			Max=v[i];
	}
	
	while(Max) {
		nn++;
		Max/=10;
	}
	p=1;
	for(k=1;k<=nn;k++) {
		p*=10;
		for(i=0;i<=9;i++) 
			fr[i]=0;
		for(i=n;i>=1;i--)
			fr[(v[i]%p)/(p/10)]++;
		for(i=1;i<=9;i++)
			fr[i]+=fr[i-1];
		for(i=n;i>=1;i--){
			vv[fr[(v[i]%p)/(p/10)]]=v[i];
			fr[(v[i]%p)/(p/10)]--;
		}
		for(i=1;i<=n;i++)
			v[i]=vv[i];
	}
	
	for(i=1;i<=n;i++)
		g<<v[i]<<' ';



	return 0;
}