Pagini recente » Cod sursa (job #1306576) | Cod sursa (job #1088814) | Cod sursa (job #1584795) | Cod sursa (job #172483) | Cod sursa (job #2268541)
#include<fstream>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
ifstream cin("radixsort.in");
ofstream cout("radixsort.out");
int N;
unsigned long long A,B,C,P=1;
vector<unsigned> V;
queue<unsigned> Q[10];
int main(){
cin>>N>>A>>B>>C;
V.reserve(N+5);
V[1]=B;
for(int i=2;i<=N;++i)
V[i]=(A*V[i-1]+B)%C;
for(int i=1;i<=9;++i,P*=10){
for(int j=1;j<=N;j++)
Q[V[j]/P%10].push(V[j]);
for(int k=0,j=0;j<10;j++)
while(!Q[j].empty()){
V[++k]=Q[j].front();
Q[j].pop();
}
}
for(int i=1;i<=N;i+=10)
cout<<V[i]<<' ';
}