提交记录 15468


用户 题目 状态 得分 用时 内存 语言 代码长度
wawcac wc2017b1. 【WC2017】挑战-任务1 Accepted 100 2.112 s 1562524 KB C++ 1.53 KB
提交时间 评测时间
2020-12-28 23:32:34 2020-12-28 23:32:38
void sort(unsigned *a, int n)
{
	unsigned b[200000000], *rs[256], t0[256], t1[256], t2[256], t3[256];
	unsigned *p;
	for (int i = 0; i < 256; ++i)
	{
		t0[i] = 0;
		t1[i] = 0;
		t2[i] = 0;
		t3[i] = 0;
	}
	for (int i = 0; i < n;)
	{
		++t0[a[i] & 255]; ++t1[a[i] >> 8 & 255]; ++t2[a[i] >> 16 & 255]; ++t3[a[i] >> 24]; ++i;
		++t0[a[i] & 255]; ++t1[a[i] >> 8 & 255]; ++t2[a[i] >> 16 & 255]; ++t3[a[i] >> 24]; ++i;
		++t0[a[i] & 255]; ++t1[a[i] >> 8 & 255]; ++t2[a[i] >> 16 & 255]; ++t3[a[i] >> 24]; ++i;
		++t0[a[i] & 255]; ++t1[a[i] >> 8 & 255]; ++t2[a[i] >> 16 & 255]; ++t3[a[i] >> 24]; ++i;
	}
	p = b - 1;
	for (int i = 0; i < 256; ++i)
		rs[i] = p, p += t0[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 += t1[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 += t2[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 += t3[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];
	}
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #151.765 ms763 MB + 352 KBAcceptedScore: 34

Testcase #21.081 s1144 MB + 440 KBAcceptedScore: 33

Testcase #32.112 s1525 MB + 924 KBAcceptedScore: 33


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