// File: /workspace/github_cpp_makefile_star2_O3/kmyk[P]procon26/beam_search.cpp
// Function: beam_search_solver::beam_search_solver(int, std::unordered_set<std::bitset<1024ul>, std::hash<std::bitset<1024ul>>, std::equal_to<std::bitset<1024ul>>, std::allocator<std::bitset<1024ul>>>*)
beam_search_solver(int a_beam_width, unordered_set<bitset<board_size * board_size> > *a_cache)
            : beam_width(a_beam_width),
              cache(a_cache) {
        n = -1;
        highscore = 1000000007;
        least_stone = 1000000007;
        component_pack_table[0 + 2 * 10] = 5;
        component_pack_table[0 + 6 * 10] = 5;
        component_pack_table[1 + 1 * 10] = 6;
        component_pack_table[1 + 3 * 10] = 6;
        component_pack_table[1 + 5 * 10] = 6;
        component_pack_table[3 + 3 * 10] = 6;
        component_pack_table[3 + 3 * 10] = 6;
        component_pack_table[0 + 3 * 10] = 7;
        component_pack_table[0 + 1 * 10] = 7;
        component_pack_table[1 + 4 * 10] = 7;
        component_pack_table[2 + 2 * 10] = 8;
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r15
movl %esi, %ebp
movq %rdi, %rbx
callq 0x74fa
xorps %xmm0, %xmm0
movups %xmm0, 0x20d0(%rbx)
movups %xmm0, 0x20c0(%rbx)
movups %xmm0, 0x20b0(%rbx)
movl %ebp, 0x20e8(%rbx)
leaq 0x20f0(%rbx), %r14
leaq 0x20f8(%rbx), %rax
movl $0x0, 0x20f8(%rbx)
xorl %ecx, %ecx
movq %rcx, 0x2100(%rbx)
movq %rax, 0x2108(%rbx)
movq %rax, 0x2110(%rbx)
movups %xmm0, 0x2118(%rbx)
movups %xmm0, 0x2128(%rbx)
movups %xmm0, 0x2138(%rbx)
movq %rcx, 0x2148(%rbx)
movq %r15, 0x2150(%rbx)
movl $0xffffffff, 0x20ec(%rbx) # imm = 0xFFFFFFFF
movabsq $0x3b9aca073b9aca07, %rax # imm = 0x3B9ACA073B9ACA07
movq %rax, 0x20e0(%rbx)
leaq 0x4(%rsp), %rsi
movl $0x14, (%rsi)
movq %r14, %rdi
callq 0x450a
movl $0x5, (%rax)
leaq 0x4(%rsp), %rsi
movl $0x3c, (%rsi)
movq %r14, %rdi
callq 0x450a
movl $0x5, (%rax)
leaq 0x4(%rsp), %rsi
movl $0xb, (%rsi)
movq %r14, %rdi
callq 0x450a
movl $0x6, (%rax)
leaq 0x4(%rsp), %rsi
movl $0x1f, (%rsi)
movq %r14, %rdi
callq 0x450a
movl $0x6, (%rax)
leaq 0x4(%rsp), %rsi
movl $0x33, (%rsi)
movq %r14, %rdi
callq 0x450a
movl $0x6, (%rax)
leaq 0x4(%rsp), %rsi
movl $0x21, (%rsi)
movq %r14, %rdi
callq 0x450a
movl $0x6, (%rax)
leaq 0x4(%rsp), %rsi
movl $0x21, (%rsi)
movq %r14, %rdi
callq 0x450a
movl $0x6, (%rax)
leaq 0x4(%rsp), %rsi
movl $0x1e, (%rsi)
movq %r14, %rdi
callq 0x450a
movl $0x7, (%rax)
leaq 0x4(%rsp), %rsi
movl $0xa, (%rsi)
movq %r14, %rdi
callq 0x450a
movl $0x7, (%rax)
leaq 0x4(%rsp), %rsi
movl $0x29, (%rsi)
movq %r14, %rdi
callq 0x450a
movl $0x7, (%rax)
leaq 0x4(%rsp), %rsi
movl $0x16, (%rsi)
movq %r14, %rdi
callq 0x450a
movl $0x8, (%rax)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2af5
jmp 0x2af5
jmp 0x2af5
jmp 0x2af5
jmp 0x2af5
jmp 0x2af5
jmp 0x2af5
jmp 0x2af5
jmp 0x2af5
jmp 0x2af5
movq %rax, %r15
leaq 0x20b0(%rbx), %r12
xorl %r13d, %r13d
movq 0x2138(%rbx,%r13), %rdi
testq %rdi, %rdi
je 0x2b1f
movq 0x2148(%rbx,%r13), %rsi
subq %rdi, %rsi
callq 0x2190
addq $-0x18, %r13
cmpq $-0x30, %r13
jne 0x2b02
movq %r14, %rdi
callq 0x47ae
movq 0x20c8(%rbx), %rdi
testq %rdi, %rdi
je 0x2b4c
movq 0x20d8(%rbx), %rsi
subq %rdi, %rsi
callq 0x2190
movq %r12, %rdi
callq 0x4570
movq %r15, %rdi
callq 0x22a0