Cod sursa(job #1117213)

Utilizator TibixbAndrei Tiberiu Tibixb Data 23 februarie 2014 11:53:45
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>
#define DIM 10000003
using namespace std;

int v[DIM], w[DIM], f[10];

long long t, n, maxim, i, j, a, b, c, z;

ifstream fin("algsort.in");
ofstream fout("algsort.out");

int main() {
    fin>>n>>b;
    v[1] = b;
    maxim = b;
    for (i=2;i<=n;i++) {
        //v[i] = (int)((1LL*a*v[i-1] + b) % c);
        fin>>v[i];
        if (v[i] > maxim)
            maxim = v[i];
    }

    t = 0;
    while (maxim) {
        t++;
        maxim/=10;
    }

    long long z = 1;
    for (i=1;i<=t;i++) {
        for (j=0;j<=9;j++)
            f[j] = 0;
        for (j=1;j<=n;j++)
            f[ v[j]/z%10  ] ++;
        for (j=1;j<=9;j++)
            f[j] += f[j-1];
        for (j=n;j>=1;j--) {
            w[  f[ v[j]/z%10  ]   ] = v[j];
            f[ v[j]/z%10  ] --;
        }
        for (j=1;j<=n;j++)
            v[j] = w[j];

        z*=10;
    }
    for(i=1;i<=n;i++)
        fout<<v[i]<<" ";
    return 0;
}