Pagini recente » Cod sursa (job #1565758) | Cod sursa (job #3036816) | Cod sursa (job #1130598) | Cod sursa (job #2745528) | Cod sursa (job #2600970)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
void radixsort(vector<int>& v)
{
vector<int> cnt(256);
vector<int> out((int)v.size());
for(int bit=0; bit<=31; bit+=8)
{
for(auto& x:v)
cnt[(x>>bit)&255]++;
for(int i=1; i<256; i++)
cnt[i]+=cnt[i-1];
for(int i=(int)v.size()-1; i>=0; i--)
out[--cnt[(v[i]>>bit)&255]]=v[i];
v=out;
fill(cnt.begin(), cnt.end(), 0);
}
}
int main()
{
int n,a,b,c;
fin >> n >> a >> b >> c;
vector<int> v(n);
v[0]=b;
for(int i=1;i<n;i++)
v[i]=(1LL*a*v[i-1]+b)%c;
radixsort(v);
for(int i=0; i<(int)v.size(); i+=10)
fout<< v[i] << ' ';
return 0;
}