Pagini recente » Cod sursa (job #2902374) | Cod sursa (job #1672155) | Cod sursa (job #750433) | Cod sursa (job #712269) | Cod sursa (job #1231269)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
vector <int> v[1<<17];
int n,a[10000005],aa,b,c;
int main()
{ int i,j,k;
f>>n>>aa>>b>>c;
a[1]=b;
v[b-((b>>16)<<16)].push_back(b);
for(i=2;i<=n;i++)
{ a[i]=((long long)aa*a[i-1]+b)%c;
v[a[i]-((a[i]>>16)<<16)].push_back(a[i]);
}
k=0;
for(i=0;i<(1<<16);i++)
{
for(j=0;j<v[i].size();j++)
{ k++;a[k]=v[i][j]; }
while(!v[i].empty()) v[i].pop_back();
}
for(i=1;i<=n;i++)
v[a[i]>>16].push_back(a[i]);
k=0;
for(i=0;i<(1<<16);i++)
for(j=0;j<v[i].size();j++)
{ k++;a[k]=v[i][j];}
for(i=1;i<=n;i+=10)
g<<a[i]<<" ";
return 0;
}