Cod sursa(job #3200401)
Utilizator | Enal Gemaledin Blaugranas | Data | 4 februarie 2024 16:03:18 |
---|---|---|---|
Problema | Radix Sort | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream F("radixsort.in");
ofstream G("radixsort.out");
unsigned v[10000000],a,b,c;
int i,j,n;
int main()
{
for(F>>n>>a>>b>>c,v[0]=b,i=1;i<n;v[i]=(1LL*a*v[i-1]+b)%c,++i);
for(j=0;j<4;++j) {
unsigned u[10000000],d[256];
for(memset(d,0,sizeof d),i=0;i<n;++d[(v[i++]>>(j*8))&255]);
for(i=1;i<256;d[i]+=d[i-1],++i);
for(i=n-1;i>=0;u[--d[(v[i]>>(j*8))&255]]=v[i],--i);
for(i=0;i<n;v[i]=u[i],++i);
}
for(i=0;i<n;G<<v[i]<<' ',i+=10);
return 0;
}