Pagini recente » Cod sursa (job #1951154) | Cod sursa (job #1815707) | Cod sursa (job #1117741) | Cod sursa (job #2910058) | Cod sursa (job #2223789)
#include<fstream>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int N,A,B,C,V[10000002],Sort[10000002];
const int Nr=255;
void RadixSort(){
for(int p=0;p<25;p=p+8){
int K[270]={0};
for(int i=1;i<=N;i++)
K[(V[i]>>p)&Nr]++;
for(int i=1;i<=255;i++)
K[i]=K[i]+K[i-1];
for(int i=N;i>0;i--)
Sort[K[(V[i]>>p)&Nr]--]=V[i];
for(int i=1;i<=N;i++)
V[i]=Sort[i];
}
}
int main()
{
fin>>N>>A>>B>>C;
V[1]=B%C;
for(int i=2;i<=N;i++)
V[i]=(1LL*A*V[i-1]%C+B)%C;
RadixSort();
for(int i=1;i<=N;i=i+10)
fout<<V[i]<<" ";
fout<<'\n';
return 0;
}