Cod sursa(job #1695770)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 27 aprilie 2016 19:27:03
Problema Radix Sort Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
int n,a,b,c,i;
int v[10000010],aux[10000010];
int ap[1<<8];
void bagaradix(int p)
{
    memset(ap,0,sizeof ap);
    int i;
    int mask=(1<<8)-1;
    for(i=1;i<=n;++i) ap[(v[i]>>p)&mask]++;
    for(i=1;i<=mask;++i) ap[i]+=ap[i-1];
    for(i=mask;i;--i) ap[i]=ap[i-1];
    ap[0]=0;
    for(i=1;i<=n;++i) aux[++ap[(v[i]>>p)&mask]]=v[i];
    for(i=1;i<=n;++i) v[i]=aux[i];
}
int main()
{
    f>>n>>a>>b>>c;
    v[1]=b;
    for(i=2;i<=n;++i) v[i]=(1LL*a*v[i-1]%c+b)%c;
    for(i=0;i<32;i+=8) bagaradix(i);
    for(i=1;i<=n;i+=10) g<<v[i];
    return 0;
}