Cod sursa(job #775865)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 9 august 2012 11:16:54
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<cstdio>
#include<vector>
#include<algorithm>
#include<cstring>
#define pb push_back
using namespace std;
vector<int>v[10];
int main()
{
    long sum=0,a[5000007],put,i,j,n;
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    scanf("%ld",&n);
    for (i=1;i<=n;i++)
    {
        scanf("%ld",&a[i]);
        sum=max(sum,a[i]);
    }
    put=1;
    while (sum>=put)
    {
        for (i=0;i<10;i++)
            v[i].clear();
        for (i=1;i<=n;i++)
            v[(a[i]/put)%10].pb(a[i]);
        memset(a,0,sizeof(a));
        n=0;
        for (i=0;i<10;i++)
            for (j=0;j<v[i].size();j++)
                a[++n]=v[i][j];
        put*=10;
    }
    for (i=1;i<=n;i++)
        printf("%ld ",a[i]);
    return 0;
}