Cod sursa(job #1100767)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 7 februarie 2014 14:19:20
Problema Radix Sort Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
const int X=0xff;
long long n, a, b, c, v[10000010], i, j, k, nr;

vector<long long> L[256];

int main(){
    f>>n>>a>>b>>c;
    v[1]=b;
    for(i=2; i<=n; i++)
        v[i]=(1LL*a*v[i-1]+b)%c;
    for(k=0; k<4; k++)
    {
        nr=0;
        for(i=1; i<=n; i++)
            L[ (v[i]>>(8*k))&X ].push_back(v[i]);
        for(i=0; i<256; i++)
        {
            for(j=0; j<L[i].size(); j++)
                v[++nr]=L[i][j];
            L[i].empty();
        }
    }
    for(i=1; i<=n; i+=10)
        g<<v[i]<<' ';
    g<<"\n";
    return 0;
}