Cod sursa(job #2138038)
| Utilizator | Data | 21 februarie 2018 11:51:05 | |
|---|---|---|---|
| Problema | Radix Sort | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include <fstream>
int N,A,B,C,v[2][0x989680],i,d,t;
void R()
{
int f[256]{},p[256]{};
for(i=N;i;++f[v[t][--i]>>d&255]);
for(;i^256;p[++i]=p[i-1]+f[i-1]);
for(i=0;i^N;++i)v[!t][p[v[t][i]>>d&255]++]=v[t][i];
d+=8;t^=1;
}
int main()
{
std::ifstream("radixsort.in")>>N>>A>>B>>C;
std::ofstream o("radixsort.out");
for(**v=B;i^N;v[0][++i]=(v[0][i-1]*1LL*A+B)%C);
R();R();R();R();
for(i=0;i^N;i+=10)o<<i[*v]<<' ';
}
