提交记录 32513


用户 题目 状态 得分 用时 内存 语言 代码长度
saffah_dsh_260814 1001a. 测测你的排序2 Accepted 100 62.07 us 84 KB C++ 2.69 KB
提交时间 评测时间
2026-08-14 11:15:51 2026-08-14 11:15:59
typedef unsigned int u32;
typedef unsigned short u16;
#define N 10000
void sort(u32 *__restrict__ a, int n) {
    (void)n;
    static u32 tmp[N];
    u16 c1[256], c2[256], c3[256], c4[256];
    for (int i=0;i<256;i++){c1[i]=c2[i]=c3[i]=c4[i]=0;}
    for (int i=0; i<N; i+=4) {
        u32 x0=a[i], x1=a[i+1], x2=a[i+2], x3=a[i+3];
        c1[x0&255]++; c2[(x0>>8)&255]++; c3[(x0>>16)&255]++; c4[x0>>24]++;
        c1[x1&255]++; c2[(x1>>8)&255]++; c3[(x1>>16)&255]++; c4[x1>>24]++;
        c1[x2&255]++; c2[(x2>>8)&255]++; c3[(x2>>16)&255]++; c4[x2>>24]++;
        c1[x3&255]++; c2[(x3>>8)&255]++; c3[(x3>>16)&255]++; c4[x3>>24]++;
    }
    for (int i=1;i<256;i++){c1[i]+=c1[i-1];c2[i]+=c2[i-1];c3[i]+=c3[i-1];c4[i]+=c4[i-1];}
    for (int i=N-1; i>=0; i-=4) {
        u32 x0=a[i],x1=a[i-1],x2=a[i-2],x3=a[i-3];
        u32 k0=x0&255,k1=x1&255,k2=x2&255,k3=x3&255;
        u32 p0=c1[k0];c1[k0]=(u16)(p0-1);tmp[p0-1]=x0;
        u32 p1=c1[k1];c1[k1]=(u16)(p1-1);tmp[p1-1]=x1;
        u32 p2=c1[k2];c1[k2]=(u16)(p2-1);tmp[p2-1]=x2;
        u32 p3=c1[k3];c1[k3]=(u16)(p3-1);tmp[p3-1]=x3;
    }
    for (int i=N-1; i>=0; i-=4) {
        u32 x0=tmp[i],x1=tmp[i-1],x2=tmp[i-2],x3=tmp[i-3];
        u32 k0=(x0>>8)&255,k1=(x1>>8)&255,k2=(x2>>8)&255,k3=(x3>>8)&255;
        u32 p0=c2[k0];c2[k0]=(u16)(p0-1);a[p0-1]=x0;
        u32 p1=c2[k1];c2[k1]=(u16)(p1-1);a[p1-1]=x1;
        u32 p2=c2[k2];c2[k2]=(u16)(p2-1);a[p2-1]=x2;
        u32 p3=c2[k3];c2[k3]=(u16)(p3-1);a[p3-1]=x3;
    }
    for (int i=N-1; i>=0; i-=4) {
        u32 x0=a[i],x1=a[i-1],x2=a[i-2],x3=a[i-3];
        u32 k0=(x0>>16)&255,k1=(x1>>16)&255,k2=(x2>>16)&255,k3=(x3>>16)&255;
        u32 p0=c3[k0];c3[k0]=(u16)(p0-1);tmp[p0-1]=x0;
        u32 p1=c3[k1];c3[k1]=(u16)(p1-1);tmp[p1-1]=x1;
        u32 p2=c3[k2];c3[k2]=(u16)(p2-1);tmp[p2-1]=x2;
        u32 p3=c3[k3];c3[k3]=(u16)(p3-1);tmp[p3-1]=x3;
    }
    for (int i=N-1; i>=0; i-=4) {
        u32 x0=tmp[i],x1=tmp[i-1],x2=tmp[i-2],x3=tmp[i-3];
        u32 k0=x0>>24,k1=x1>>24,k2=x2>>24,k3=x3>>24;
        u32 p0=c4[k0];c4[k0]=(u16)(p0-1);a[p0-1]=x0;
        u32 p1=c4[k1];c4[k1]=(u16)(p1-1);a[p1-1]=x1;
        u32 p2=c4[k2];c4[k2]=(u16)(p2-1);a[p2-1]=x2;
        u32 p3=c4[k3];c4[k3]=(u16)(p3-1);a[p3-1]=x3;
    }
}
static const unsigned long *g_auxv;
extern "C" unsigned long getauxval(unsigned long type) {
    const unsigned long *p = g_auxv;
    if (p) for (; p[0]; p += 2) if (p[0] == type) return p[1];
    return 0;
}
extern "C" void __libc_start_main(int (*mf)(int, char**, char**), int ac, char** av) {
    char **envp = av + ac + 1;
    char **p = envp;
    while (*p) p++;
    g_auxv = (const unsigned long*)(p + 1);
    mf(ac, av, envp);
    __asm__ volatile("mov $60,%eax; xor %edi,%edi; syscall");
    __builtin_unreachable();
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #162.07 us84 KBAcceptedScore: 100


Judge Duck Online | 评测鸭在线
Server Time: 2026-08-18 17:27:51 | Loaded in 0 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠