Cod sursa(job #1565604)

Utilizator 2chainzTauheed Epps 2chainz Data 11 ianuarie 2016 00:46:09
Problema Radix Sort Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream in("radixsort.in");
ofstream out("radixsort.out");
const int Nmax = 10000001;
unsigned int v[Nmax],N,A,B,C;
vector<int> p[1<<8];
int main(){
    in>>N>>A>>B>>C;
    v[1]=B;
    for(int i=2;i<=N;i++) v[i]=(A*v[i-1]+B)%C;
    for(int k=0;k<4;k++){
        for(int i=1;i<=N;i++) p[(v[i]>>(k*8))%(1<<8)].push_back(v[i]); N=0;
        for(int i=0;i<(1<<8);i++){
            for(vector<int>::iterator it=p[i].begin();it!=p[i].end();++it) v[++N]=*it;
            p[i].clear();
        }
    }
    for(int i=1;i<=N;i+=10) out<<v[i]<<' ';
    return 0;
}