int cnt0[256],cnt8[256],cnt16[256],cnt24[256];
using u32 = unsigned;
u32 b[10000];
void sort(u32 * a,int n)
{
for (u32 * _ = a + n,* i = a;i < _;++ i)
++ cnt0[* i & 255],++ cnt8[* i >> 8 & 255],++ cnt16[* i >> 16 & 255],++ cnt24[* i >> 24 & 255];
for (int i = 1;i < 256;++ i)
cnt0[i] += cnt0[i - 1],cnt8[i] += cnt8[i - 1],cnt16[i] += cnt16[i - 1],cnt24[i] += cnt24[i - 1];
for (u32 * i = a + n;i > a;)
{
-- i,b[-- cnt0[* i & 255]] = * i;
-- i,b[-- cnt0[* i & 255]] = * i;
-- i,b[-- cnt0[* i & 255]] = * i;
-- i,b[-- cnt0[* i & 255]] = * i;
-- i,b[-- cnt0[* i & 255]] = * i;
-- i,b[-- cnt0[* i & 255]] = * i;
-- i,b[-- cnt0[* i & 255]] = * i;
-- i,b[-- cnt0[* i & 255]] = * i;
}
for (u32 * i = b + n; i > b;)
{
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
}
for (u32 * i = a + n;i > a;)
{
-- i,b[-- cnt0[* i & 255]] = * i;
-- i,b[-- cnt0[* i & 255]] = * i;
-- i,b[-- cnt0[* i & 255]] = * i;
-- i,b[-- cnt0[* i & 255]] = * i;
-- i,b[-- cnt0[* i & 255]] = * i;
-- i,b[-- cnt0[* i & 255]] = * i;
-- i,b[-- cnt0[* i & 255]] = * i;
-- i,b[-- cnt0[* i & 255]] = * i;
}
for (u32 * i = b + n; i > b;)
{
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
-- i,a[-- cnt8[* i >> 8 & 255]] = * i;
}
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 69.89 us | 96 KB | Runtime Error | Score: 0 | 显示更多 |