Pagini recente » Cod sursa (job #387783) | Cod sursa (job #1647036) | Cod sursa (job #2401842) | Cod sursa (job #2297016) | Cod sursa (job #2268145)
#include <iostream>
#include <fstream>
#define MAX 10000010
using namespace std;
typedef long long ll;
ll n,a,b,c,aa;
int r[2][MAX],v[MAX];
void sorteaza(int di){
int sz[2]={0,0},bt,szf=0;
for(int i=1;i<=n;i++){
bt=((v[i]|di)==v[i]);
r[bt][++sz[bt]]=v[i];
}
for(int ra=0;ra<=1;ra++)
for(int i=1;i<=sz[ra];i++)
v[++szf]=r[ra][i];
}
int main()
{
ifstream f ("radixsort.in");
ofstream g ("radixsort.out");
f>>n>>a>>b>>c;
v[1]=b;
for(int i=2;i<=n;i++) v[i]=(a*v[i-1]+b)%c;
for(int i=0;i<=31;i++) sorteaza(1<<i);
for(int i=1;i<=n;i+=10) g<<v[i]<<" ";
f.close ();
g.close ();
return 0;
}