Cod sursa(job #1313611)

Utilizator rebound212Mihnea Savu rebound212 Data 10 ianuarie 2015 21:37:41
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <vector>
#include <cstdio>
#define pb push_back
using namespace std;
vector <int> g[11];
int a[500001],i,j,div,n,lista;
int main()
{
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    scanf("%d",&n);
    for(i=1; i<=n; ++i)
        scanf("%d",&a[i]);
    div=1;
    for(i=1; i<=10; ++i)
    {
        for(j=0; j<10; ++j)
            g[j].clear();

        for(j=1; j<=n; ++j)
        {
            lista=a[j]/div%10;
            g[lista].pb(a[j]);
        }
        a[0]=0;
        for(j=0; j<10; ++j)
        {
            for(vector <int> :: iterator it=g[j].begin(); it!=g[j].end(); it++)
            {
                a[++a[0]]=(*it);
            }
        }
        div*=10;
    }
    for(i=1; i<=n; ++i)
    {
        printf("%d ",a[i]);
    }

    return 0;
}