Pagini recente » Cod sursa (job #1380409) | Cod sursa (job #483873) | Cod sursa (job #2882004) | Cod sursa (job #846211) | Cod sursa (job #1317839)
#include<fstream>
#include<vector>
#include<algorithm>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
#define MAXN 1000001
#define MOD 215000
long n;
long long cur, a, b, c;
long V[MAXN];
vector<long> B[257];
vector<long>::iterator it;
int main() {
long i, nr, ind;
fin>>n>>a>>b>>c;
cur = b;
for(i=1; i<=n; i++, cur = (cur*a+b)%c) {
V[i] = cur;
}
for(c = 24; c>=0; c-=8) {
for(i=1; i<=n; i++) {
nr = (V[i] >> c) & ( (1<<8) - 1 );
B[nr].push_back(V[i]);
}
ind = 0;
for(i=0; i<256; i++) {
for(it = B[i].begin(); it!=B[i].end(); ++it) {
V[++ind] = *it;
}
B[i].clear();
}
}
for(int i=1; i<=n; i+=10) {
fout<<V[i]<<" ";
}
}