Cod sursa(job #2766978)

Utilizator xXoctavianXxStanescu Matei Octavian xXoctavianXx Data 4 august 2021 12:56:57
Problema Radix Sort Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

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

const int nmax=10000004;
int v[nmax];
int v2[nmax];
int indici[256];

int main()
{
    long long n,a,b,c;
    fin>>n>>a>>b>>c;
    v[0]=b;
    for(int i=1; i<n; i++)
    {
        v[i]=(a*v[i-1]+b)%c;
    }
    for(int p=0; p<32; p+=8)
    {

        for(int i=0; i<n; i++)
        {
            indici[((v[i]>>p)&255)+1]++;
        }
        for(int i=1; i<256; i++) indici[i]+=indici[i-1];
        for(int i=0; i<n; i++)
        {
            int x=(v[i]>>p)&255;
            v2[indici[x]++]=v[i];
        }
        memcpy(v,v2,sizeof (v2));
        memset(indici,0,sizeof (indici));
    }
    for(int i=0; i<n; i+=10)
    {
        fout<<v[i]<<" ";
    }
}