Pagini recente » Cod sursa (job #777758) | Cod sursa (job #776707) | Cod sursa (job #3268400) | Cod sursa (job #2474017) | Cod sursa (job #1147523)
//Infoarena. Arhiva Educationala. Radix Sort.
#include<iostream>
#include<fstream>
#include<queue>
using namespace std;
int main(){
freopen("radixsort.in","r",stdin);
freopen("radixsort.out","w",stdout);
int N,A,B,C,*v;
cin>>N>>A>>B>>C;
v=new int[N+3];
v[1]=B;
for(int i=2;i<=N;i++){
v[i]=(A*v[i-1]+B)%C;
}
queue<int>Q[10];
for(int p=1;p<=1000000000;p=p*10){
for(int i=1;i<=N;i++){
Q[(v[i]/p)%10].push(v[i]);
}
int x=1;
for(int k=0;k<10;k++){
while( !Q[k].empty() ){
v[x++]=Q[k].front();
Q[k].pop();
}
}
}
for(int i=1;i<=N;i+=10) cout<<v[i]<<" ";
}