Pagini recente » Cod sursa (job #804123) | Cod sursa (job #2122346) | Cod sursa (job #1108042) | Cod sursa (job #570904) | Cod sursa (job #2622824)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("radixsort.in");
ofstream fout ("radixsort.out");
long int n, a, b, c;
int v[10000000];
short int base = 256;
void RadixSort(int v[], int n, short int base = 256)
{
int c[base], aux[n], j, i;
for(i = 0; i < 32; i += 8)
{
for(j = 0; j < 256; j++)
c[j] = 0;
for(j = 0; j < n; j++)
c[(v[j] >> i) & 255] ++;
for(j = 1; j < 256; j++)
c[j] += c[j - 1];
for (j = n - 1; j >= 0; j--)
{
c[(v[j] >> i) & 255] --;
aux[c[(v[j] >> i) & 255]] = v[j];
}
for(j = 0; j < n; j++)
v[j] = aux[j];
}
}
int main()
{
fin>>n>>a>>b>>c;
int i;
v[1]=b;
for(i=2; i<=n; i++)
v[i]=((a*v[i-1])+b)%c;
RadixSort(v,n+1);
for(i=1; i<=n; i+=10)
fout<<v[i]<<" ";
return 0;
}