Pagini recente » Cod sursa (job #2602475) | Cod sursa (job #1278075) | Cod sursa (job #1038289) | Cod sursa (job #1298842) | Cod sursa (job #2905232)
#include <fstream>
using namespace std;
ifstream fin ("radixsort.in");
ofstream fout ("radixsort.out");
const int MAXI=100000;
int v[MAXI],aux[MAXI];
int fr[256];
void radixsort(int v[], int N)
{
for(int p = 0; p < 32; p += 8) {
for(int i = 0; i < 256; i++)
fr[i] = 0;
for(int i = 1; i <= N; i++)
fr[(v[i] >> p) & 255]++;
for(int i = 1; i < 256; i++)
fr[i] += fr[i - 1];
for(int i = N; i >= 1; i--)
aux[fr[(v[i] >> p) & 255]--] = v[i];
for(int i = 1; i <= N; i++)
v[i] = aux[i];
}
}
int main()
{
int N,A,B,C;
fin >> N >> A >> B >> C;
int v[N+1];
for (int i=1;i<=N;i++)
{
if (i==1)
v[i]=B;
else
v[i]=(1ll*A * v[i-1] + B) % C;
}
radixsort(v,N);
for (int i=1;i<=N;i+=10)
fout << v[i] << " ";
return 0;
}