提交记录 15576


用户 题目 状态 得分 用时 内存 语言 代码长度
wawcac wc2017b1. 【WC2017】挑战-任务1 Accepted 100 2.105 s 1562524 KB C++ 1.88 KB
提交时间 评测时间
2021-01-02 00:55:55 2021-01-02 00:55:59
void sort(unsigned *a, int n)
{
    unsigned *b=new unsigned[n];
	unsigned *rs[300], cnt0[300], cnt1[300], cnt2[300], cnt3[300];
    unsigned *p;
    for (int i = 0; i < 256; ++i)
    {
        cnt0[i] = 0;
        cnt1[i] = 0;
        cnt2[i] = 0;
        cnt3[i] = 0;
    }
    for (int i = 0; i < n;)
    {
        ++cnt0[a[i] & 255], ++cnt1[a[i] >> 8 & 255], ++cnt2[a[i] >> 16 & 255], ++cnt3[a[i] >> 24], ++i;
        ++cnt0[a[i] & 255], ++cnt1[a[i] >> 8 & 255], ++cnt2[a[i] >> 16 & 255], ++cnt3[a[i] >> 24], ++i;
        ++cnt0[a[i] & 255], ++cnt1[a[i] >> 8 & 255], ++cnt2[a[i] >> 16 & 255], ++cnt3[a[i] >> 24], ++i;
        ++cnt0[a[i] & 255], ++cnt1[a[i] >> 8 & 255], ++cnt2[a[i] >> 16 & 255], ++cnt3[a[i] >> 24], ++i;
    }
    p = b - 1;
    for (int i = 0; i < 256; ++i)
        rs[i] = p, p += cnt0[i];
    for (int i = 0; i < n; i += 4)
    {
        p = a + i;
        *++rs[p[0] & 255] = p[0];
        *++rs[p[1] & 255] = p[1];
        *++rs[p[2] & 255] = p[2];
        *++rs[p[3] & 255] = p[3];
    }


    p = a - 1;
    for (int i = 0; i < 256; ++i)
        rs[i] = p, p += cnt1[i];
    for (int i = 0; i < n; i += 4)
    {
        p = b + i;
        *++rs[p[0] >> 8 & 255] = p[0];
        *++rs[p[1] >> 8 & 255] = p[1];
        *++rs[p[2] >> 8 & 255] = p[2];
        *++rs[p[3] >> 8 & 255] = p[3];
    }
    p = b - 1;
    for (int i = 0; i < 256; ++i)
        rs[i] = p, p += cnt2[i];
    for (int i = 0; i < n; i += 4)
    {
        p = a + i;
        *++rs[p[0] >> 16 & 255] = p[0];
        *++rs[p[1] >> 16 & 255] = p[1];
        *++rs[p[2] >> 16 & 255] = p[2];
        *++rs[p[3] >> 16 & 255] = p[3];
    }
    p = a - 1;
    for (int i = 0; i < 256; ++i)
        rs[i] = p, p += cnt3[i];
    for (int i = 0; i < n; i += 4)
    {
        p = b + i;
        *++rs[p[0] >> 24] = p[0];
        *++rs[p[1] >> 24] = p[1];
        *++rs[p[2] >> 24] = p[2];
        *++rs[p[3] >> 24] = p[3];
    }
	delete[] b;
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #1976.39 us804 KBAcceptedScore: 34

Testcase #21.052 s762 MB + 988 KBAcceptedScore: 33

Testcase #32.105 s1525 MB + 924 KBAcceptedScore: 33


Judge Duck Online | 评测鸭在线
Server Time: 2026-03-20 14:43:31 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠