Cod sursa(job #1145591)

Utilizator vladrochianVlad Rochian vladrochian Data 18 martie 2014 12:20:31
Problema Radix Sort Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
#include <vector>
#define ui unsigned int
using namespace std;
ui n,a,b,c,v[10000001];
void radixsort(ui bits)
{
	vector<ui> h[256];
	ui i;
	for(i=0;i<n;++i)
		h[(v[i]>>bits)&255].push_back(v[i]);
	for(i=0,n=0;i<256;++i)
		for(vector<ui>::iterator it=h[i].begin();it<h[i].end();++it)
			v[n++]=*it;
}
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int main()
{
	ui i;
	fin>>n>>a>>b>>c;
	v[0]=b;
	for(i=1;i<n;++i)
		v[i]=(1LL*a*v[i-1]+b)%c;
	for(i=0;i<32;i+=8)
		radixsort(i);
	for(i=0;i<n;i+=10)
		fout<<v[i]<<" ";
	return 0;
}