Cod sursa(job #1281310)

Utilizator cojocarugabiReality cojocarugabi Data 3 decembrie 2014 00:16:09
Problema Radix Sort Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
# include <bits/stdc++.h>
using namespace std;
const int nmax = 1e7 + 5;
int s[nmax];
int v[nmax];
int g[256];
int main(void)
{
    int a,b,c,n;
    ifstream fi("radixsort.in");
    ofstream fo("radixsort.out");
    fi>>n>>a>>b>>c;
    for (int i=1;i<=n;++i) s[i]=(1LL*a*s[i-1]+b)%c;
    for (int j=0;j<25;j+=8)
    {
        for (int i=1;i<=n;++i) ++g[(s[i]>>j)&255];
        for (int i=1;i<256;++i) g[i]+=g[i-1];
        for (int i=n;i;--i) v[g[(s[i]>>j)&255]--]=s[i];
        memcpy(s,v,sizeof(v));
    }
    for (int i=1;i<=n;i+=10) fo << s[i] << ' ';
    return fo << '\n',0;
}