Pagini recente » Cod sursa (job #2669408) | Cod sursa (job #65047) | Cod sursa (job #2383650) | Cod sursa (job #2960775) | Cod sursa (job #2269485)
#include<fstream>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
int n, v[10000002], r[2][10000002], sf[2];
void radixsort(int lv){
int c, k=0, i, j;
for(i = 0; i < n; i++){
c=v[i] / lv % 2;
r[c][++sf[c]] = v[i];
}
for(i=0;i<=1;i++){
for(j=1;j<=sf[i];j++)
v[k++]=r[i][j];
sf[i]=0;
}
if(lv<(1<<30)) radixsort(lv<<1);
}
int main()
{
int a, b, c, i;
f>>n>>a>>b>>c;
v[0] = b % c;
for(i = 1; i < n; i++)
v[i] = (1ll * a * v[i-1] % c + b) % c;
radixsort(1);
for(i = 0; i < n; i += 10)
g<<v[i]<<" ";
}