Cod sursa(job #2266913)

Utilizator cc4infinityCojocaru Catalin cc4infinity Data 22 octombrie 2018 22:38:54
Problema Radix Sort Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;

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

unsigned int n,i,j,a,b,c,d,t[10000001],s[10000001];

void csort(int bit)
{
    int t1[260];
    for (int i=0;i<=260;i++) t1[i]=0;

    for (int i=1;i<=n;i++)
      t1[(t[i]>>(8*bit))&255]++;
    for (int i=1;i<=260;i++) t1[i]+=t1[i-1];
    for (int i=n;i>=1;i--)
        {
           s[t1[(t[i]>>(8*bit))&255]]=t[i];
           t1[(t[i]>>(8*bit))&255]--;
        }
    for (int i=1;i<=n;i++) t[i]=s[i];
    return;
}

int main()
{
    fin>>n>>a>>b>>c;
    long long d;
    t[1]=b;
    for (i=2;i<=n;i++)
    {
        d=(1ll*a*t[i-1]+b)%c;
        t[i]=d;
    }
    for (j=0;j<=3;j++)
        csort(j);
    //sort(t+1,t+1+n);
    for (i=1;i<=n;i+=10)
        fout<<t[i]<<" ";
    return 0;
}