Pagini recente » Cod sursa (job #503039) | Cod sursa (job #436688) | Cod sursa (job #2821925) | Cod sursa (job #2752234) | Cod sursa (job #788230)
Cod sursa(job #788230)
#include <fstream>
#include <cstring>
#define DN 5000005
#define LL long long
using namespace std;
int n,cnt[260],v[DN],vnou[DN];
int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(int i=1; i<=n; ++i) f>>v[i];
for(LL pc=0; pc<42; pc+=7) {
memset(cnt,0,sizeof(cnt));
for(int i=1; i<=n; ++i) {
int cc=(v[i]>>pc)&255;
++cnt[cc+1];
}
for(int j=1; j<=256; ++j) cnt[j]+=cnt[j-1];
for(int i=1; i<=n; ++i) {
int cc=(v[i]>>pc)&255;
++cnt[cc];
vnou[cnt[cc]]=v[i];
}
//memcpy(v,vnou,(n+1)*sizeof(int));
//for(int i=1; i<=n; ++i) cout<<vnou[i].x<<' ';
//cout<<'\n';
copy(vnou+1,vnou+n+1,v+1);
}
for(int i=1; i<=n; ++i) g<<v[i]<<' ';
return 0;
}