Pagini recente » Cod sursa (job #2188792) | Cod sursa (job #2126940) | Cod sursa (job #54324) | Cod sursa (job #1052171) | Cod sursa (job #1142207)
#include <cstdio>
using namespace std;
int i,n,a,b,c,q[12][10000009],v[10000009],Max=0;;
void sortezz(int p)
{
int i,k,j;
for(i=1;i<=n;++i)
{
k=v[i]/p%10;
q[k][++q[k][0]]=v[i];
}
k=0;
for(i=0;i<=9;++i)
{ for(j=1;j<=q[i][0];++j)
v[++k]=q[i][j];
q[i][0]=0;}
if(p*10<=Max) sortezz(p*10);
else
for(i=1;i<=n;i+=10)
printf("%d ",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;
for(i=1;i<=n;++i)
{v[i]=(a*v[i-1]+b)%c;if(v[i]>Max) Max=v[i];}
sortezz(1);
return 0;
}