提交记录 48360


用户 题目 状态 得分 用时 内存 语言 代码长度
saffah_dsh_v41_0919 test. 自定义测试 Accepted 100 1.31 us 4 KB C++17 1.42 KB
提交时间 评测时间
2026-09-19 14:49:38 2026-09-19 14:49:40
typedef unsigned long long u64;
typedef unsigned int u32;
static inline void dkexit(int c){ register long rax __asm__("rax")=60; register long rdi __asm__("rdi")=c; __asm__ volatile("syscall"::"a"(rax),"D"(rdi):"rcx","r11","memory"); }
static u64 dkaux(int argc,char**argv,u64 t){ char**e=argv+argc+1; while(*e)e++; u64*p=(u64*)(e+1); for(;p[0];p+=2) if(p[0]==t) return p[1]; return 0; }
static void dktls(int argc,char**argv,int areasz){
  u64 phdr=dkaux(argc,argv,3), phent=dkaux(argc,argv,4), phnum=dkaux(argc,argv,5);
  if(!phdr||!phent) return;
  const char*init=0; u64 filesz=0,memsz=0,align=64;
  for(u64 i=0;i<phnum;i++){
    const u32*ph=(const u32*)(phdr+i*phent);
    if(ph[0]==7){ init=(const char*)(((const u64*)ph)[2]); filesz=((const u64*)ph)[4]; memsz=((const u64*)ph)[5]; align=((const u64*)ph)[6]; break; }
  }
  if(!memsz) return;
  if(align<16) align=16;
  u64 tls_size=(memsz+align-1)/align*align;
  static char area[1<<16] __attribute__((aligned(64)));
  char* block=area; char* tp=block+tls_size;
  for(u64 i=0;i<tls_size;i++) block[i]=0;
  for(u64 i=0;i<filesz;i++) block[tls_size-filesz+i]=init[i];
  static void* dtv[4]; dtv[0]=(void*)1; dtv[1]=block;
  void**tcb=(void**)tp; tcb[0]=tp; tcb[1]=&dtv[0]; tcb[2]=tp; ((int*)tp)[6]=0;
  (void)areasz;
  __asm__ volatile("wrfsbase %0"::"r"((u64)tp));
}

extern "C" int __libc_start_main(int(*m)(int,char**,char**),int c,char**v){ m(c,v,v+c+1); dkexit(0); }
int main(){ return 0; }

CompilationN/AN/ACompile OKScore: N/A

Testcase #11.31 us4 KBAcceptedScore: 100


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