Cod sursa(job #1714329)

Utilizator enacheionutEnache Ionut enacheionut Data 7 iunie 2016 22:40:22
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream>
#include<deque>
using namespace std;

ifstream in("algsort.in");
ofstream out("algsort.out");
deque<int> v[2][256];
int N, e, i, j, k, s;
int byte[4] = { 0XFF,0xFF00,0xFF0000,0xFF000000};
int shift[4] = { 0,8,16,24 };
int main()
{
	in >> N;
	for (i = 1;i <= N;++i)
	{
		in >> e;
		v[0][e & byte[0]].push_back(e);
	}
	s = 1;
	for (k = 1;k <= 3;++k, ++s)
		for (i = 0;i <= 255;++i)
			for (;v[(s + 1) % 2][i].size()>0;)
			{
				v[s % 2][(v[(s + 1) % 2][i].front() & byte[s])>>shift[s]].push_back(v[(s+1) % 2][i].front());
				v[(s+1) % 2][i].pop_front();
			}
	
	for (i = 0;i <= 255;++i)
		for (j = 1;j <= v[(s + 1) % 2][i].size();++j)
			out << v[(s + 1) % 2][i][j - 1] << " ";
	return 0;
}