Cod sursa(job #3291680)

Utilizator AlexRadu010Radu Alexandru Timotei AlexRadu010 Data 5 aprilie 2025 11:44:35
Problema Radix Sort Scor 100
Compilator cpp-64 Status done
Runda cex_9 Marime 0.78 kb
#include<fstream>
#include<vector>
const std::string txt="radixsort";
std::ifstream cin(txt+".in");
std::ofstream cout(txt+".out");
int v[10000005],u[10000005];
signed main(int n,int a,int b,int c,int mx,int nrc){
    cin>>n>>a>>b>>c;
    mx=b,nrc=1;
    v[1]=b%c;
    for(int i=2;i<=n;++i){
        v[i]=(1LL*a*v[i-1]%c+b)%c;
        mx=std::max(mx,v[i]);
    }
    while(mx/=10)
        nrc*=10;
    mx=1;
    while(mx<=nrc){
        int f[10]={0};
        for(int i=1;i<=n;++i)
            ++f[v[i]/mx%10];
        for(int i=0;i<10;++i)
            f[i]+=f[i-1];
        for(int i=n;i>0;--i)
            u[f[v[i]/mx%10]--]=v[i];
        for(int i=1;i<=n;++i)
            v[i]=u[i];
        mx*=10;
    }
    for(int i=1;i<=n;i+=10)
        cout<<v[i]<<' ';
}