Pagini recente » Istoria paginii utilizator/bizar | Cod sursa (job #3192356) | Cod sursa (job #898532) | Cod sursa (job #2014826) | Cod sursa (job #2600963)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
void radixsort(vector<int>& v)
{
vector<int> fr(256);
vector<int> aux((int)v.size());
for(int bit=0; bit<=31; bit+=8)
{
for(auto& i:v)
fr[(i>>bit)&255]++;
for(int i=1; i<256; i++)
fr[i]+=fr[i-1];
for(int i=(int)v.size()-1; i>=0; i--)
aux[--fr[(v[i]>>bit)&255]]=v[i];
v=aux;
fill(fr.begin(), fr.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;
}