Pagini recente » Cod sursa (job #2419018) | Cod sursa (job #515372) | Cod sursa (job #3261019) | Cod sursa (job #3137204) | Cod sursa (job #1317838)
#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() {
fin>>n>>a>>b>>c;
cur = b;
for(int i=1; i<=n; i++, cur = (cur*a+b)%c) {
V[i] = cur;
}
for(int c = 24; c>=0; c-=8) {
for(int i=1; i<=n; i++) {
long nr = (V[i] >> c) & ( (1<<8) - 1 );
B[nr].push_back(V[i]);
}
long ind = 0;
for(int 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]<<" ";
}
}