typedef unsigned int u32;
#define N 10000
void sort(u32 *a, int n) {
(void)n;
static u32 tmp[N];
u32 c1[256], c2[256], c3[256], c4[256];
for (int i=0;i<256;i++){c1[i]=c2[i]=c3[i]=c4[i]=0;}
for (int i=0; i<N; i+=8) {
u32 x0=a[i],x1=a[i+1],x2=a[i+2],x3=a[i+3],x4=a[i+4],x5=a[i+5],x6=a[i+6],x7=a[i+7];
c1[x0&255]++;c1[x1&255]++;c1[x2&255]++;c1[x3&255]++;c1[x4&255]++;c1[x5&255]++;c1[x6&255]++;c1[x7&255]++;
c2[(x0>>8)&255]++;c2[(x1>>8)&255]++;c2[(x2>>8)&255]++;c2[(x3>>8)&255]++;c2[(x4>>8)&255]++;c2[(x5>>8)&255]++;c2[(x6>>8)&255]++;c2[(x7>>8)&255]++;
c3[(x0>>16)&255]++;c3[(x1>>16)&255]++;c3[(x2>>16)&255]++;c3[(x3>>16)&255]++;c3[(x4>>16)&255]++;c3[(x5>>16)&255]++;c3[(x6>>16)&255]++;c3[(x7>>16)&255]++;
c4[x0>>24]++;c4[x1>>24]++;c4[x2>>24]++;c4[x3>>24]++;c4[x4>>24]++;c4[x5>>24]++;c4[x6>>24]++;c4[x7>>24]++;
}
for (int i=1;i<256;i++){c1[i]+=c1[i-1];c2[i]+=c2[i-1];c3[i]+=c3[i-1];c4[i]+=c4[i-1];}
for (int i=N-1; i>=0; i-=8) {
u32 x0=a[i],x1=a[i-1],x2=a[i-2],x3=a[i-3],x4=a[i-4],x5=a[i-5],x6=a[i-6],x7=a[i-7];
tmp[--c1[x0&255]]=x0;tmp[--c1[x1&255]]=x1;tmp[--c1[x2&255]]=x2;tmp[--c1[x3&255]]=x3;
tmp[--c1[x4&255]]=x4;tmp[--c1[x5&255]]=x5;tmp[--c1[x6&255]]=x6;tmp[--c1[x7&255]]=x7;
}
for (int i=N-1; i>=0; i-=8) {
u32 x0=tmp[i],x1=tmp[i-1],x2=tmp[i-2],x3=tmp[i-3],x4=tmp[i-4],x5=tmp[i-5],x6=tmp[i-6],x7=tmp[i-7];
a[--c2[(x0>>8)&255]]=x0;a[--c2[(x1>>8)&255]]=x1;a[--c2[(x2>>8)&255]]=x2;a[--c2[(x3>>8)&255]]=x3;
a[--c2[(x4>>8)&255]]=x4;a[--c2[(x5>>8)&255]]=x5;a[--c2[(x6>>8)&255]]=x6;a[--c2[(x7>>8)&255]]=x7;
}
for (int i=N-1; i>=0; i-=8) {
u32 x0=a[i],x1=a[i-1],x2=a[i-2],x3=a[i-3],x4=a[i-4],x5=a[i-5],x6=a[i-6],x7=a[i-7];
tmp[--c3[(x0>>16)&255]]=x0;tmp[--c3[(x1>>16)&255]]=x1;tmp[--c3[(x2>>16)&255]]=x2;tmp[--c3[(x3>>16)&255]]=x3;
tmp[--c3[(x4>>16)&255]]=x4;tmp[--c3[(x5>>16)&255]]=x5;tmp[--c3[(x6>>16)&255]]=x6;tmp[--c3[(x7>>16)&255]]=x7;
}
for (int i=N-1; i>=0; i-=8) {
u32 x0=tmp[i],x1=tmp[i-1],x2=tmp[i-2],x3=tmp[i-3],x4=tmp[i-4],x5=tmp[i-5],x6=tmp[i-6],x7=tmp[i-7];
a[--c4[x0>>24]]=x0;a[--c4[x1>>24]]=x1;a[--c4[x2>>24]]=x2;a[--c4[x3>>24]]=x3;
a[--c4[x4>>24]]=x4;a[--c4[x5>>24]]=x5;a[--c4[x6>>24]]=x6;a[--c4[x7>>24]]=x7;
}
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 67.18 us | 92 KB | Accepted | Score: 100 | 显示更多 |