Cod sursa(job #1356176)

Utilizator retrogradLucian Bicsi retrograd Data 23 februarie 2015 11:27:06
Problema Radix Sort Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include<fstream>
#include<list>

using namespace std;
typedef int var;

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

list<var> B[100001];
var V[10000001];
var n;

void radixsort() {
    for(var i=0; i<n; i++) {
        B[V[i]%100000].push_back(V[i]);
    }
    var ind = 0;
    for(var i=0; i<100001; i++) {
        while(!B[i].empty()) {
            V[ind++] = B[i].front();
            B[i].pop_front();
        }
    }

    for(var i=0; i<n; i++) {
        B[V[i]/100000].push_back(V[i]);
    }
    ind = 0;
    for(var i=0; i<100001; i++) {
        while(!B[i].empty()) {
            V[ind++] = B[i].front();
            B[i].pop_front();
        }
    }

}

int main() {
    var a, b, c;
    fin>>n>>a>>b>>c;
    V[0] = b;
    for(var i=1; i<n; i++) {
        V[i] = (a*V[i-1] + b)%c;
    }


    radixsort();

    for(var i=0; i<n; i+=10) {
        fout<<V[i]<<" ";
    }


    return 0;
}