Pagini recente » Cod sursa (job #972470) | Cod sursa (job #2018819) | Cod sursa (job #2587024) | Cod sursa (job #2083433) | Cod sursa (job #2278546)
#include <iostream>
#include <fstream>
#include <vector>
#define MAX 10000010
#define MOD 256
using namespace std;
typedef long long ll;
ll n,a,b,c;
int v[MAX];
vector<int> m[MOD];
void sorteaza(int sh){
int sz=0;
for(int i=1;i<=n;i++)
m[((v[i]<<sh)&(MOD-1))].push_back(v[i]);
for(int i=0;i<MOD;i++)
while(m[i].size()){
for(auto j:m[i])v[++sz]=j;
m[i].clear();
}
}
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 sh=0;sh<31;sh+=8)
sorteaza(sh);
for(int i=1;i<=n;i+=10)
g<<v[i]<<" ";
f.close ();
g.close ();
return 0;
}