Cod sursa(job #2266891)

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

using namespace std;

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

int n,i,j,a,b,c,d,t[10000001],s[10000001];
vector<int> nr[11];

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;
    t[1]=b;
    for (i=1;i<=n;i++)
        t[i]=(a*t[i-1]+b)%c;
    for (j=0;j<=3;j++)
        csort(j);
    for (i=1;i<=n;i+=10)
        fout<<t[i]<<" ";
    return 0;
}