Pagini recente » Cod sursa (job #2181088) | Cod sursa (job #3128916) | Cod sursa (job #669742) | Cod sursa (job #149054) | Cod sursa (job #1142266)
#include <cstdio>
#include <vector>
#define Nmax 100002
#define pb push_back
using namespace std;
int i, n, a, b, c, Max;
long long v[10000002];
vector <int> C[10];
void sortezz(long long p)
{
int i,k,j;
for(i=1;i<=n;++i)
C[v[i]/p%10].pb(v[i]);
k=0;
for(i=0;i<=9;++i)
{ for(j=0;j<C[i].size();++j)
v[++k]=C[i][j];
C[i].clear();
}
if(p*10<=Max) sortezz(p*10);
else{
for(i=1;i<=n;i+=10) printf("%lld ",v[i]);
printf("\n");
}
}
int main()
{
freopen("radixsort.in","r",stdin);
freopen("radixsort.out","w",stdout);
scanf("%d%d%d%d",&n,&a,&b,&c);
v[1]=b; Max=0;
for(i=2;i<=n;++i)
{v[i]=(a*v[i-1]+b)%c;if(v[i]>Max) Max=v[i];}
sortezz(1);
return 0;
}