Pagini recente » Cod sursa (job #1692841) | Cod sursa (job #1732715) | Cod sursa (job #1528309) | Cod sursa (job #1365788) | Cod sursa (job #788233)
Cod sursa(job #788233)
#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<=49; 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;
}