Cod sursa(job #2265500)

Utilizator cc4infinityCojocaru Catalin cc4infinity Data 21 octombrie 2018 12:05:37
Problema Radix Sort Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 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];
vector<int> nr[11];
int main()
{
    fin>>n>>a>>b>>c;
    t[1]=b;
    for (i=1;i<=n;i++)
        t[i]=(a*t[i-1]+b)%c;
    int r=1;
    for (i=1;i<=10;i++)
    {
        for (j=1;j<=n;j++)
          nr[(t[j]/r)%10].push_back(t[j]);
        int poz=0;
        for (j=0;j<10;j++)
        {
            int lg=nr[j].size(),poz1=poz+1;
            for (int l=lg-1;l>=0;l--)
            {
                poz++;
                t[poz1+l]=nr[j][l];
                nr[j].pop_back();
            }
        }
        r*=10;
    }
    for (i=1;i<=n;i+=10)
        fout<<t[i]<<" ";
    return 0;
}