Pagini recente » Cod sursa (job #1403619) | Cod sursa (job #1694718) | Cod sursa (job #2434444) | Cod sursa (job #1748076) | Cod sursa (job #1317844)
#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 = 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(long i=1; i<=n; i+=10) {
fout<<V[i]<<" ";
}
}