Cod sursa(job #1142476)

Utilizator AlexNiuclaeNiculae Alexandru Vlad AlexNiuclae Data 13 martie 2014 21:08:04
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <cstdio>
#include <vector>
#include <algorithm>
#define val first
#define poz second
#define pb push_back
#define Nmax 500010

using namespace std;

int i,n,a,b,c,Max;
long long v[Nmax];

vector <int> vec[10];

void radix(long long p)
{
   int i,k,j;
   for(i=1;i<=n;++i)
     vec[v[i]/p%10].pb(v[i]);

   k=0;
   for(i=0;i<=9;++i)
     { for(j=0;j<vec[i].size();++j)
          v[++k]=vec[i][j];
      vec[i].clear();
    }
    if(p*10<=Max) radix(p*10);
    else{
    for(i=1;i<=n;i++) printf("%lld ",v[i]);
        printf("\n");
    }
}

int main()
{
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);



   scanf("%lld", &n);
    for (i=1;i<=n;++i)
      {

      scanf("%lld", &v[i]);
           if(v[i]>Max) Max=v[i];
       }


    radix(1);



    return 0;
}