Pagini recente » Cod sursa (job #3156357) | Cod sursa (job #368491) | Cod sursa (job #1801711) | Cod sursa (job #2804112) | Cod sursa (job #1714612)
#define MAGIC 0 ///Tab-ul de 2 ma ameteste...
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 10000005;
const int BYTE = 256;
int n;
int v[NMAX];
queue<int> q[BYTE];
inline int mask(int arg, int step) {
return int( (arg>>--step*8) & (BYTE-1LL) );
}
void rsort(void) {
for(int i=1; i<=4; ++i) {
for(int j=1; j<=n; ++j)
q[mask(v[j], i)].push(v[j]);
for(int j=0, buff=0; j<BYTE; ++j)
while(!q[j].empty())
v[++buff] = q[j].front(),
q[j].pop();
}
}
int main(void) {
FILE *fi = fopen("radixsort.in", "r");
FILE *fo = fopen("radixsort.out", "w");
int a, b, c;
fscanf(fi,"%d %d %d %d",&n,&a,&b,&c);
v[1] = b;
for(int i=2; i<=n; ++i)
v[i] = (1LL * a * v[i-1] + b) % c;
rsort();
for(int i=1; i<=n; i+=10)
fprintf(fo,"%lld ",v[i]);
fprintf(fo,"\n");
fclose(fi);
fclose(fo);
return MAGIC;
}