#define D 256
#define D1 255
unsigned b[100000000],*rs[D],cnt0[D],cnt1[D],cnt2[D],cnt3[D];
void sort(unsigned *a, int n){
#define cal(w,w2,tw,op)\
p=w2-1;for(i=0;i<D;++i)rs[i]=p,p+=tw[i];\
for(i=0;i<n;++i)p=w+i,*++rs[p[0]op]=p[0];
register unsigned*p,i,x;
for(i=0;i<D;++i)
cnt0[i]=cnt1[i]=cnt2[i]=cnt3[i]=0;
for(i=0;i<n;++i)
x=a[i],++cnt0[x&D1],++cnt1[x>>8&D1],++cnt2[x>>16&D1],++cnt3[x>>24];
cal(a,b,cnt0,&D1);
cal(b,a,cnt1,>>8&D1);
cal(a,b,cnt2,>>16&D1);
cal(b,a,cnt3,>>24);
}
Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
Testcase #1 | 790.283 ms | 762 MB + 980 KB | Accepted | Score: 100 | 显示更多 |