Cod sursa(job #1142207)

Utilizator Alexa2001Alexa Tudose Alexa2001 Data 13 martie 2014 16:41:02
Problema Radix Sort Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#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;
}