Pagini recente » Cod sursa (job #1165882) | Cod sursa (job #893124) | Cod sursa (job #2586054) | Cod sursa (job #674037) | Cod sursa (job #1359882)
#include <fstream>
#include <list>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
int n,a[10000001],p,i,l,b,c,lim=1<<30,base=256;
list <int> v[300];
int main()
{
f>>n>>b>>a[1]>>c;
for (i=2;i<=n;i++)
a[i]=(b*a[i-1]+a[1])%c;
for (p=1;p<=lim/base;p*=base){
for (i=1;i<=n;i++){
v[(a[i]/p)%base].push_back(a[i]);
}
l=0;
for (i=0;i<=base;i++)
if (v[i].size()>0)
while(v[i].size()>0)
a[++l]=v[i].front(),v[i].pop_front();
}
for (i=1;i<=n;i+=10)
g<<a[i]<<' ';
return 0;
}