Cod sursa(job #2297651)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 6 decembrie 2018 10:08:38
Problema Radix Sort Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include<fstream>
#include<cstring>
#include<algorithm>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int maxi,i,n,a,b,c,ex,v[10000001];

void Radix(int ex)
{
    int i;int f[10],o[10000001];
    for(i=1;i<=n;i++)f[(v[i]/ex)%10]++;
    for(i=1;i<=9;i++)f[i]+=f[i-1];
    for(i=n;i>=1;i--)o[f[(v[i]/ex)%10]--]=v[i];
    memcpy(v,o,sizeof(v));
}

int main()
{
    fin>>n>>a>>b>>c;v[1]=b;maxi=b;
    for(i=2;i<=n;i++){v[i]=(a*v[i-1]+b)%c;maxi=max(maxi,v[i]);}
    for(ex=1;ex<=maxi;ex*=10)Radix(ex);
    for(i=1;i<=n;i+=10) fout<<v[i]<<" ";
    return 0;
}