Cod sursa(job #1092928)

Utilizator raulstoinStoin Raul raulstoin Data 27 ianuarie 2014 16:13:11
Problema Radix Sort Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>
#include<vector>

using namespace std;

ifstream fin("radixsort.in");
ofstream fout("radixsort.out");

int n,a,b,c;
vector<int> radix[10],v;

int main()
{
	fin>>n>>a>>b>>c;
	v.push_back(-1);
	v.push_back(b);
	for(int i=2;i<=n;i++)
		v.push_back( (1LL*a*v[i-1]+b)%c );
	for(int k=1;k<(1<<29);k*=10)
	{
		for(int i=1;i<=n;i++)
			radix[ (v[i]/k)%10 ].push_back(v[i]);
		for(int k=0,i=1;k<10;k++)
		{
			for(size_t j=0;j<radix[k].size();j++)
				v[i++]=radix[k][j];
			radix[k].clear();
		}
	}
	for(int i=1;i<=n;i+=10)
		fout<<v[i]<<' ';
	return 0;
}