提交记录 113525


用户 题目 状态 得分 用时 内存 语言 代码长度
saffah_cc_v41_260924 1001. 测测你的排序 Wrong Answer 0 19.39 us 220 KB C++17 2.14 KB
提交时间 评测时间
2026-09-30 03:55:12 2026-09-30 03:55:16
/* lane m100 ROW 1001 -- WA mem_kb PROBE: is 2MB-page memory reachable on the JUDGE?
   Channel (fh1, verified): mem_kb = 12 + 4*(pages WRITTEN).  Payload scaled x50.
   code = 1*(MAP_HUGETLB plain ok) + 2*(MAP_HUGETLB|MAP_HUGE_2MB ok)
        + 4*(madvise(MADV_HUGEPAGE) == 0) + 8*(/proc/meminfo HugePages_Total > 0)
        + 16*(MADV_POPULATE_WRITE == 0) + 32*(MAP_POPULATE mmap ok)
   WA by construction (it does not sort).  `volatile` is load-bearing (fleet s67 trap). */
#include <cstdio>
#include <cstring>
#include <cerrno>
#include <unistd.h>
#include <sys/mman.h>
#include <sys/syscall.h>
#include <fcntl.h>

static volatile unsigned char vbuf[(200*70 + 8)*4096] __attribute__((aligned(4096)));

static int huge_pages_total(void){
  int fd = open("/proc/meminfo", O_RDONLY);
  if (fd < 0) return -1;
  char b[4096]; ssize_t n = read(fd, b, sizeof(b)-1); close(fd);
  if (n <= 0) return -1;
  b[n] = 0;
  const char *k = strstr(b, "HugePages_Total:");
  if (!k) return -1;
  k += 16; while (*k == ' ') k++;
  int v = 0; while (*k >= '0' && *k <= '9') { v = v*10 + (*k - '0'); k++; }
  return v;
}

void sort(unsigned *a, int n) {
  (void)a; (void)n;
  int code = 0;
  size_t L = 4u<<20;
  { errno = 0;
    void *p = mmap(0, L, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_HUGETLB, -1, 0);
    if (p != MAP_FAILED) { code |= 1; munmap(p, L); } }
  { errno = 0;
    void *p = mmap(0, L, PROT_READ|PROT_WRITE,
                   MAP_PRIVATE|MAP_ANONYMOUS|MAP_HUGETLB|(21u<<26), -1, 0);
    if (p != MAP_FAILED) { code |= 2; munmap(p, L); } }
  { void *q = mmap(0, L, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
    if (q != MAP_FAILED) {
      errno = 0;
      if (madvise(q, L, 14 /*MADV_HUGEPAGE*/) == 0) code |= 4;
      errno = 0;
      if (syscall(SYS_madvise, q, L, 23 /*MADV_POPULATE_WRITE*/) == 0) code |= 16;
      munmap(q, L);
    } }
  if (huge_pages_total() > 0) code |= 8;
  { void *r = mmap(0, L, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_POPULATE, -1, 0);
    if (r != MAP_FAILED) { code |= 32; munmap(r, L); } }
  int pages = 50 * (1 + code);
  for (int i = 0; i < pages; i++) vbuf[i*4096] = (unsigned char)i;
  a[0] = (unsigned)code;
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #119.39 us220 KBWrong AnswerScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-11-07 03:06:53 | Loaded in 0 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠