Pagini recente » Cod sursa (job #3133915) | Cod sursa (job #2642322) | Cod sursa (job #1956204) | Cod sursa (job #2533369) | Cod sursa (job #2229341)
#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){
ofstream out("txt.out");
for(int i = 1 ; i <= n ; i++)
out << array[i] << " ";
out.close();
}
void radixSort(int n){
int mx = -1;
for(int i = 1 ; i <= n ; i++){
mx = max(mx,v[i]);
}
int significantDigit = 1;
while(mx/significantDigit > 0){
int counting[10] = {0};
for(int i = 1 ; i <= n ; i++)
counting[v[i]/significantDigit%10]++;
for(int i = 1 ; i <= 9 ; i++)
counting[i] += counting[i-1];
for(int i = n ; i >= 0 ; i -- ){
vectorAux[counting[v[i]/significantDigit%10]--] = v[i];
}
for(int i = 1 ; i <= n ; i ++ )
v[i] = vectorAux[i];
significantDigit *= 10;
}
printArray(v,n);
}
int main(){
int n , a , b , c ;
ifstream in("radix.in");
in >> n >> a >> b >> c;
v[1] = b ;
for(int i = 1 ; i <= n ; i++)
v[i] = (v[i-1] * a + b ) % c ;
radixSort(n);
}