Cod sursa(job #2125838)

Utilizator epermesterNagy Edward epermester Data 8 februarie 2018 19:31:15
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream>
using namespace std;

int main() {
	ifstream in("algsort.in");
	int N;
	in >> N;

	int *v = new int[N];
	for (int i = 0;i < N;++i)
		in >> v[i];

	int mx = v[0];
	for (int i = 1; i < N; ++i)
		if (v[i] > mx)
			mx = v[i];

	for (long long tiz = 1; mx / tiz; tiz *= 10) {
		int *result = new int[N];
		int hany[10] = { 0 };

		for (int i = 0;i < N;++i)
			++hany[(v[i] / tiz) % 10];

		for (int i = 1;i < 10;++i)
			hany[i] += hany[i - 1];

		for (int i = N - 1;i >= 0;--i)
			result[--hany[(v[i] / tiz) % 10]] = v[i];

		for (int i = 0;i < N;++i)
			v[i] = result[i];
	}

	ofstream out("algsort.out");
	for (int i = 0;i < N; ++i)
		out << v[i] << " ";
}