#define fo(i,x,y) for(int i = x;i <= y;i++)
#define fd(i,x,y) for(int i = x;i >= y;i--)
int cnt[260];
unsigned B[200000010];
void sort(unsigned *a, int n) {
n--;
fo(i,0,255) cnt[i] = 0;
fo(i,0,n) cnt[a[i] & 255]++;
fo(i,1,255) cnt[i] += cnt[i - 1];
fd(i,n,0) B[--cnt[a[i] & 255]] = a[i];
fo(i,0,255) cnt[i] = 0;
fo(i,0,n) cnt[B[i] >> 8 & 255]++;
fo(i,1,255) cnt[i] += cnt[i - 1];
fd(i,n,0) a[--cnt[B[i] >> 8 & 255]] = B[i];
fo(i,0,255) cnt[i] = 0;
fo(i,0,n) cnt[a[i] >> 16 & 255]++;
fo(i,1,255) cnt[i] += cnt[i - 1];
fd(i,n,0) B[--cnt[a[i] >> 16 & 255]] = a[i];
fo(i,0,255) cnt[i] = 0;
fo(i,0,n) cnt[B[i] >> 24 & 255]++;
fo(i,1,255) cnt[i] += cnt[i - 1];
fd(i,n,0) a[--cnt[B[i] >> 24 & 255]] = B[i];
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 1.055 ms | 808 KB | Accepted | Score: 34 | 显示更多 |
| Testcase #2 | 1.16 s | 762 MB + 988 KB | Accepted | Score: 33 | 显示更多 |
| Testcase #3 | 2.321 s | 1525 MB + 924 KB | Accepted | Score: 33 | 显示更多 |