Cod sursa(job #1313668)

Utilizator space.foldingAdrian Soucup space.folding Data 10 ianuarie 2015 22:31:49
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include <iostream>
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <stack>
#include <utility>
#include <string>
#include <cstring>
#include <cctype>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <limits>
#include <sstream>
#include <deque>
#include <bitset>
#include <complex>
#include <functional>
#include <memory>
#include <numeric>

using namespace std;

#define x first
#define y second


int main () {
	ifstream fin("algsort.in");
	ofstream fout("algsort.out");
	int n, d10 = 1;
	fin >> n;
	vector<int> v(n);
	vector<int> g[11];

	for(int i = 0; i < n; i++)
		fin >> v[i];

	for(int i = 1; i <= 10; i++) {

		for(int j = 0; j < 10; j++) g[j].clear();

		for(int j = 0; j < n; j++) {
			int bin = v[j] / d10 % 10;
			g[bin].push_back(v[j]);
		}

		int sz = 0;
		for(int j = 0; j < 10; j++) {			
			for(int k = 0, s = g[j].size(); k < s; k++)
			v[sz++] = g[j][k];
		}
		d10 *= 10;
	}
	
	for(int i = 0; i < n; i++)
		fout << v[i] << " ";

	return 0;
}