Pagini recente » Cod sursa (job #1308565) | Cod sursa (job #1814153) | Cod sursa (job #3152037) | Cod sursa (job #784615) | Cod sursa (job #2286481)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
unsigned int v[10000100];
void sortUnit(int z, int n)
{
int crtc, vSize[513] = {0};
vector<unsigned int> vList[513];
for(int i = 1; i <= n; i++){
crtc = (v[i] << z ) >> 24;
vSize[crtc]++;
vList[crtc].push_back(v[i]);
}
int k = 0, j;
for(int i = 0; i <= 511; i++){
for(j = 0; j < vSize[i];j++)
v[++k] = vList[i][j];
}
}
int main()
{
int n, a, b, c;
fin >> n >> a >> b >> c;
v[1] = b;
for(int i = 2; i <= n; i++) v[i] = (a * v[i - 1] + b) % c;
unsigned int z = 8;
while(z <= 32)
sortUnit(32 - z, n),
z = z + 8;
for(int i = 1; i <= n; i += 10) fout << v[i] << " ";
return 0;
}