Cod sursa(job #1163694)

Utilizator nickulNic Kul nickul Data 1 aprilie 2014 16:09:27
Problema Radix Sort Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<fstream>
#include<vector>
    
using namespace std;
    
ifstream in("radixsort.in");
ofstream out("radixsort.out");
    
int main()
{
    unsigned int n,a,b,c,i,j,d,e;
    vector<unsigned int> v,v1[65536],v2[65536];
    in>>n>>a>>b>>c;
    d=0;
    e=b;
    for(i=0;i<n;i++)
    {
        v1[e&0x0000FFFF].push_back(e);
        d=e;
        e=(1LL*d*a+b)%c;
    }
    for(i=0;i<65536;i++)
        for(j=0;j<v1[i].size();j++)
            v2[(v1[i].at(j)&0xFFFF0000)>>16].push_back(v1[i].at(j));
	delete v1;
    for(i=0;i<65536;i++)
        for(j=0;j<v2[i].size();j++)
            v.push_back(v2[i].at(j));
    for(i=0;i<v.size();i+=10) out<<v.at(i)<<" ";
}