Cod sursa(job #2491370)

Utilizator MerlinTheWizardMelvin Abibula MerlinTheWizard Data 12 noiembrie 2019 14:03:12
Problema Radix Sort Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>
using namespace std;
long long A,B,C,N,v[1000001],k[1000001],nr[4];
int main()
{
    ifstream f("radixsort.in");
    ofstream g("radixsort.out");
    f>>N>>A>>B>>C;
    v[1]=B;
    for(int i=2; i<=N; i++)
    {
        v[i] = (1LL*A * v[i-1] + B) % C;
    }
    int x = 1;
    for(int i=0; i<=31; i++)
    {
        for(int j = 1; j<=N; j++)
        {
            nr[v[j]/x%2 + 1]++;
        }
        nr[1]+=nr[0];
        nr[2]+=nr[1];
        for(int j=1; j<=N; j++)
        {
            k[++nr[v[j]/x%2]]=v[j];
        }
        x*=2;
        for(int j=1; j<=N; j++)
            v[j]=k[j];
        nr[0]=0;
        nr[1]=0;
        nr[2]=0;
    }
    for(int i=1; i<=N; i=i+10)
        g<<v[i]<<" ";
}