提交记录 30616


用户 题目 状态 得分 用时 内存 语言 代码长度
saffah_codex_260812 wc2017b1. 【WC2017】挑战-任务1 Time Limit Exceeded 67 3 s 1562536 KB C 1.01 KB
提交时间 评测时间
2026-08-12 23:38:25 2026-08-12 23:38:33
#include <immintrin.h>

typedef unsigned u32;
enum { RAD = 2048, MASK = RAD - 1 };
static u32 temp[200000000] __attribute__((aligned(4096)));
static u32 count[RAD] __attribute__((aligned(64)));

__attribute__((target("avx2")))
void sort(u32 *a, int n) {
    u32 *src = a, *dst = temp;
    for (int shift = 0; shift < 33; shift += 11) {
        for (int i = 0; i < RAD; ++i) count[i] = 0;
        for (int i = 0; i < n; ++i) ++count[(src[i] >> shift) & MASK];
        u32 sum = 0;
        for (int i = 0; i < RAD; ++i) {
            u32 c = count[i]; count[i] = sum; sum += c;
        }
        for (int i = 0; i < n; ++i) {
            u32 v = src[i]; dst[count[(v >> shift) & MASK]++] = v;
        }
        u32 *swap = src; src = dst; dst = swap;
    }
    if (src != a) {
        int i = 0;
        for (; i + 8 <= n; i += 8)
            _mm256_storeu_si256((__m256i *)(a+i),
                                _mm256_loadu_si256((const __m256i *)(src+i)));
        for (; i < n; ++i) a[i] = src[i];
    }
    _mm256_zeroupper();
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #11.273 ms824 KBAcceptedScore: 34

Testcase #21.562 s762 MB + 1004 KBAcceptedScore: 33

Testcase #33 s1525 MB + 936 KBTime Limit ExceededScore: 0


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