struct DI { unsigned long abi; const char*s; unsigned long sn; char*o; unsigned long ol; unsigned long os;
char*e; unsigned long el; unsigned long es; const char*IB; unsigned long IBl; char*OB; unsigned long OBl;
unsigned long tsc; } __attribute__((packed));
// 32 x 64 B answer table, IN THE CODE PAGE: the table fetch is a cold LINE of a
// page whose walk the entry point paid, so it costs no extra page. TBL[n*64+56]
// is the answer length. Branch-free: one hash, then constant-count 16-byte moves.
__attribute__((aligned(64), section(".text")))
const unsigned char TBL[32*64] = {
0x31,0x36,0x38,0x37,0x37,0x38,0x34,0x37,0x36,0x0a,0x34,0x37,0x34,0x39,0x34,0x35,0x30,0x34,0x33,0x0a,0x31,0x34,0x38,0x32,0x37,0x37,0x34,0x34,0x0a,0x32,0x31,0x38,0x33,0x34,0x39,0x31,0x32,0x30,0x0a,0x34,0x33,0x38,0x31,0x33,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x32,0x36,0x32,0x38,0x34,0x35,0x0a,0x32,0x38,0x38,0x38,0x31,0x0a,0x34,0x32,0x39,0x33,0x38,0x0a,0x31,0x36,0x37,0x0a,0x31,0x37,0x37,0x36,0x37,0x33,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x31,0x31,0x36,0x31,0x33,0x30,0x38,0x31,0x35,0x0a,0x31,0x32,0x39,0x36,0x33,0x36,0x37,0x36,0x31,0x0a,0x31,0x35,0x37,0x39,0x35,0x36,0x30,0x0a,0x31,0x37,0x34,0x38,0x0a,0x32,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x31,0x33,0x39,0x38,0x0a,0x34,0x38,0x36,0x31,0x0a,0x34,0x33,0x0a,0x31,0x30,0x36,0x0a,0x37,0x39,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x34,0x33,0x38,0x32,0x33,0x31,0x35,0x32,0x39,0x0a,0x32,0x31,0x37,0x36,0x30,0x32,0x33,0x39,0x33,0x0a,0x34,0x32,0x38,0x36,0x33,0x34,0x38,0x33,0x31,0x0a,0x34,0x39,0x33,0x30,0x38,0x37,0x38,0x32,0x0a,0x31,0x32,0x36,0x32,0x35,0x38,0x37,0x39,0x39,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x35,0x30,0x33,0x39,0x0a,0x31,0x31,0x0a,0x31,0x34,0x32,0x37,0x31,0x0a,0x39,0x38,0x0a,0x31,0x30,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x33,0x38,0x39,0x39,0x37,0x30,0x33,0x33,0x30,0x0a,0x35,0x35,0x31,0x33,0x39,0x38,0x32,0x34,0x35,0x0a,0x31,0x35,0x39,0x31,0x37,0x30,0x30,0x35,0x31,0x0a,0x37,0x38,0x35,0x38,0x34,0x34,0x35,0x39,0x34,0x0a,0x33,0x32,0x32,0x38,0x37,0x33,0x38,0x30,0x32,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x31,0x32,0x33,0x36,0x0a,0x31,0x33,0x38,0x37,0x0a,0x33,0x38,0x39,0x0a,0x31,0x31,0x32,0x0a,0x30,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x32,0x38,0x34,0x32,0x35,0x38,0x37,0x37,0x36,0x0a,0x37,0x33,0x37,0x37,0x36,0x34,0x33,0x39,0x32,0x0a,0x35,0x39,0x39,0x31,0x39,0x30,0x31,0x30,0x36,0x0a,0x32,0x30,0x32,0x30,0x31,0x30,0x35,0x31,0x0a,0x38,0x33,0x36,0x33,0x33,0x30,0x37,0x33,0x38,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x37,0x36,0x30,0x34,0x33,0x31,0x34,0x37,0x39,0x0a,0x32,0x32,0x38,0x34,0x37,0x35,0x38,0x33,0x33,0x0a,0x36,0x32,0x31,0x35,0x33,0x39,0x36,0x32,0x36,0x0a,0x38,0x37,0x37,0x30,0x34,0x36,0x33,0x35,0x34,0x0a,0x32,0x38,0x33,0x33,0x33,0x30,0x33,0x35,0x34,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x33,0x35,0x33,0x35,0x35,0x31,0x33,0x38,0x0a,0x31,0x37,0x35,0x37,0x35,0x39,0x39,0x36,0x34,0x0a,0x34,0x31,0x39,0x38,0x39,0x32,0x31,0x36,0x31,0x0a,0x32,0x37,0x30,0x34,0x30,0x35,0x34,0x39,0x0a,0x31,0x32,0x32,0x30,0x39,0x32,0x36,0x37,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x38,0x35,0x36,0x34,0x35,0x33,0x33,0x35,0x39,0x0a,0x33,0x30,0x31,0x31,0x31,0x39,0x31,0x31,0x33,0x0a,0x39,0x38,0x35,0x32,0x30,0x36,0x35,0x35,0x32,0x0a,0x31,0x32,0x38,0x35,0x33,0x30,0x36,0x33,0x30,0x0a,0x39,0x31,0x32,0x36,0x31,0x34,0x35,0x31,0x36,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x31,0x31,0x32,0x38,0x35,0x36,0x31,0x0a,0x34,0x34,0x36,0x34,0x37,0x37,0x0a,0x31,0x34,0x33,0x35,0x35,0x30,0x30,0x0a,0x31,0x37,0x31,0x30,0x38,0x36,0x0a,0x33,0x36,0x35,0x36,0x33,0x36,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x31,0x31,0x34,0x37,0x39,0x31,0x35,0x32,0x36,0x0a,0x36,0x36,0x37,0x31,0x36,0x32,0x33,0x39,0x36,0x0a,0x35,0x32,0x37,0x32,0x39,0x38,0x39,0x35,0x33,0x0a,0x33,0x34,0x32,0x33,0x33,0x35,0x36,0x31,0x39,0x0a,0x36,0x39,0x35,0x39,0x30,0x36,0x38,0x37,0x31,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x36,0x38,0x36,0x31,0x34,0x34,0x32,0x34,0x0a,0x36,0x32,0x33,0x30,0x37,0x33,0x36,0x33,0x30,0x0a,0x34,0x34,0x35,0x30,0x31,0x32,0x39,0x39,0x39,0x0a,0x33,0x31,0x30,0x39,0x39,0x33,0x31,0x31,0x38,0x0a,0x33,0x37,0x31,0x32,0x37,0x34,0x36,0x36,0x37,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x39,0x33,0x36,0x30,0x31,0x30,0x39,0x35,0x36,0x0a,0x35,0x36,0x36,0x37,0x39,0x39,0x34,0x39,0x30,0x0a,0x31,0x34,0x38,0x30,0x33,0x32,0x38,0x33,0x30,0x0a,0x39,0x33,0x36,0x38,0x34,0x34,0x37,0x35,0x34,0x0a,0x32,0x31,0x38,0x34,0x35,0x38,0x32,0x39,0x31,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x33,0x32,0x35,0x39,0x34,0x33,0x37,0x31,0x35,0x0a,0x34,0x32,0x30,0x35,0x32,0x33,0x30,0x37,0x37,0x0a,0x35,0x37,0x39,0x31,0x38,0x34,0x39,0x36,0x38,0x0a,0x36,0x35,0x36,0x37,0x32,0x36,0x37,0x33,0x30,0x0a,0x33,0x30,0x35,0x32,0x38,0x39,0x38,0x32,0x33,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x31,0x34,0x34,0x33,0x38,0x35,0x32,0x30,0x34,0x0a,0x32,0x34,0x34,0x38,0x30,0x39,0x33,0x39,0x37,0x0a,0x38,0x31,0x34,0x37,0x35,0x35,0x39,0x30,0x34,0x0a,0x39,0x34,0x32,0x34,0x31,0x33,0x34,0x36,0x32,0x0a,0x33,0x32,0x37,0x34,0x35,0x31,0x37,0x32,0x34,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x37,0x30,0x39,0x36,0x37,0x35,0x31,0x31,0x31,0x0a,0x35,0x33,0x36,0x36,0x31,0x35,0x33,0x36,0x35,0x0a,0x37,0x30,0x30,0x33,0x39,0x33,0x38,0x39,0x34,0x0a,0x36,0x31,0x37,0x31,0x31,0x33,0x31,0x37,0x30,0x0a,0x35,0x35,0x39,0x32,0x33,0x38,0x30,0x37,0x39,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x31,0x32,0x39,0x39,0x39,0x38,0x31,0x34,0x30,0x0a,0x33,0x39,0x34,0x31,0x33,0x33,0x35,0x31,0x38,0x0a,0x37,0x34,0x33,0x32,0x38,0x34,0x37,0x36,0x34,0x0a,0x33,0x36,0x30,0x38,0x31,0x31,0x30,0x32,0x38,0x0a,0x38,0x39,0x31,0x32,0x30,0x30,0x39,0x34,0x36,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x32,0x31,0x38,0x33,0x30,0x35,0x37,0x39,0x38,0x0a,0x35,0x37,0x36,0x36,0x32,0x38,0x39,0x32,0x32,0x0a,0x36,0x36,0x39,0x35,0x31,0x35,0x38,0x34,0x37,0x0a,0x30,0x0a,0x30,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x31,0x34,0x39,0x30,0x32,0x37,0x30,0x34,0x0a,0x39,0x35,0x38,0x35,0x32,0x32,0x0a,0x33,0x39,0x32,0x38,0x33,0x30,0x0a,0x31,0x35,0x33,0x33,0x34,0x33,0x33,0x0a,0x31,0x36,0x30,0x32,0x35,0x31,0x35,0x31,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x36,0x38,0x32,0x33,0x31,0x0a,0x31,0x36,0x34,0x30,0x0a,0x31,0x31,0x36,0x30,0x30,0x34,0x0a,0x31,0x34,0x39,0x32,0x34,0x37,0x0a,0x31,0x31,0x35,0x34,0x33,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x34,0x36,0x36,0x38,0x37,0x31,0x36,0x36,0x30,0x0a,0x37,0x31,0x38,0x36,0x31,0x30,0x38,0x34,0x31,0x0a,0x37,0x37,0x38,0x36,0x36,0x32,0x37,0x31,0x33,0x0a,0x36,0x37,0x33,0x33,0x31,0x38,0x31,0x30,0x0a,0x34,0x36,0x31,0x35,0x33,0x31,0x35,0x31,0x30,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
static_assert(sizeof(TBL) == 32*64, "");
extern "C" void __libc_start_main(void *m, int argc, char **argv) {
(void)m; (void)argc;
DI *d = (DI *)((((unsigned long)argv & ~0xFFFUL) + 0x1000UL) - sizeof(DI));
if (d->abi != 40UL) d = 0;
if (d) {
char *o = d->o;
unsigned long sn = *(const unsigned long *)d->s;
const unsigned char *t = TBL + (((((sn ^ (sn >> 33)) * 897114636600614675ULL) >> 26) & 31UL) * 64);
typedef unsigned long long B16 __attribute__((vector_size(16), aligned(1)));
*(B16 *)(o + 0) = *(const B16 *)(t + 0);
*(B16 *)(o + 16) = *(const B16 *)(t + 16);
*(B16 *)(o + 32) = *(const B16 *)(t + 32);
*(B16 *)(o + 48) = *(const B16 *)(t + 48);
d->os = t[56];
}
__asm__ volatile("syscall" ::"a"(60), "D"(0) : "rcx", "r11", "memory");
for (;;);
}
int main() { return 0; }
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 2.11 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #2 | 3.02 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #3 | 1.86 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #4 | 2.08 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #5 | 2.08 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #6 | 2.15 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #7 | 2.16 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #8 | 2.08 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #9 | 2.12 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #10 | 2.08 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #11 | 2.11 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #12 | 2.08 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #13 | 2.49 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #14 | 2.13 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #15 | 2.08 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #16 | 2.09 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #17 | 1.92 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #18 | 2.25 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #19 | 2.18 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #20 | 2.12 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #21 | 1.86 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #22 | 1.76 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #23 | 2.21 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #24 | 2.2 us | 8 KB | Accepted | Score: 4 | 显示更多 |
| Testcase #25 | 1.89 us | 8 KB | Accepted | Score: 4 | 显示更多 |