Pagini recente » Cod sursa (job #2639583) | Cod sursa (job #2640077) | Cod sursa (job #3139893) | Cod sursa (job #1074172) | Cod sursa (job #2229383)
#include<bits/stdc++.h>
using namespace std;
#define N_Max 10000007
int v[N_Max];
int vectorAux[N_Max];
void printArray(int array[],int n){
for(int i = 1 ; i <= n ; i++)
cout << array[i] << " ";
cout << endl;
}
void radixSort(int n){
ofstream out("radixsort.out");
int mask = (1<<16)-1;
for(int bits = 0 ; bits < 32 ; bits += 16){
int counting[1<<16+5] = {0};
for(int i = 1 ; i <= n ; i++)
counting[(v[i]>>bits)&mask]++;
for(int i = 1 ; i <= mask ; i++)
counting[i] += counting[i-1];
for(int i = n ; i >= 1 ; i -- ){
vectorAux[counting[(v[i]>>bits)&mask]--] = v[i];
}
for(int i = 1 ; i <= n ; i ++ )
v[i] = vectorAux[i];
}
for(int i = 1 ; i <= n ; i += 10)
out << v[i] << " ";
}
int main(){
int n , a ,b , c;
ifstream in("radixsort.in");
in >> n >> a >> b >>c;
v[1] = b ;
for(int i = 2 ; i <= n ; i++){
int newValue = (1LL * a * v[i - 1] + b) % c;
v[i] = newValue;
}
radixSort(n);
}