// File: /workspace/github_cpp_makefile_star2_O2/cmaureir[P]strip-packing/scattersearch.cpp
// Function: print_strip(solution)
void print_strip(solution sol){

    const string colors[] = {
            "\e[0;34m",// BLUE
            "\e[0;32m",// GREEN
            "\e[0;36m",// CYAN
            "\e[0;31m",// RED
            "\e[0;35m",// PURPLE
            "\e[0;33m",// BROWN
            "\e[0;37m",// LIGHT GRAY
            "\e[1;33m",// DARK GRAY
            "\e[1;34m",// LIGHT BLUE
            "\e[1;32m",// LIGHT GREEN
            "\e[1;36m",// CYANCLARO
            "\e[1;31m",// LIGHT RED
            "\e[1;35m",// LIGHT PURPLE
            "\e[1;33m",// YELLOW
            "\e[0;37m" // WHITE
    };

    vector<int> tmp = sol.items;
    int h = sol.height;

    for (int j = h-1; j >= 0; j--)
    {
        for (int i = 0; i < strip_width; i++)
        {

            if ( sol.strip[i][j] != 0)
            {
                for (int k = 0; k < (int)tmp.size(); k++)
                {
                    if(tmp[k] == sol.strip[i][j])
                    {
                        cout << colors[k%14] << sol.strip[i][j] << "\t";
                    }
                }
            }
            else
            {
                 cout << colors[14] << "#" << "\t";
            }
        }
        cout << endl;
    }
    cout << colors[14] << endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x218, %rsp            # imm = 0x218
movq %rdi, %r15
leaq 0x54ce(%rip), %rsi      # 0xb2cf
leaq 0x30(%rsp), %rbx
leaq 0x18(%rsp), %rdx
movq %rbx, %rdi
callq 0x7286
leaq 0x50(%rsp), %r14
leaq 0x54b8(%rip), %rsi      # 0xb2d7
leaq 0x17(%rsp), %rdx
movq %r14, %rdi
callq 0x7286
leaq 0x70(%rsp), %r14
leaq 0x54a7(%rip), %rsi      # 0xb2df
leaq 0x16(%rsp), %rdx
movq %r14, %rdi
callq 0x7286
leaq 0x90(%rsp), %r14
leaq 0x5493(%rip), %rsi      # 0xb2e7
leaq 0x15(%rsp), %rdx
movq %r14, %rdi
callq 0x7286
leaq 0xb0(%rsp), %r14
leaq 0x547f(%rip), %rsi      # 0xb2ef
leaq 0x14(%rsp), %rdx
movq %r14, %rdi
callq 0x7286
leaq 0xd0(%rsp), %r14
leaq 0x546b(%rip), %rsi      # 0xb2f7
leaq 0x13(%rsp), %rdx
movq %r14, %rdi
callq 0x7286
leaq 0xf0(%rsp), %r14
leaq 0x5457(%rip), %rsi      # 0xb2ff
leaq 0x12(%rsp), %rdx
movq %r14, %rdi
callq 0x7286
leaq 0x110(%rsp), %r14
leaq 0x5443(%rip), %rsi      # 0xb307
leaq 0x11(%rsp), %rdx
movq %r14, %rdi
callq 0x7286
leaq 0x130(%rsp), %r14
leaq 0x542f(%rip), %rsi      # 0xb30f
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
callq 0x7286
leaq 0x150(%rsp), %r14
leaq 0x541b(%rip), %rsi      # 0xb317
leaq 0xf(%rsp), %rdx
movq %r14, %rdi
callq 0x7286
leaq 0x170(%rsp), %r14
leaq 0x5407(%rip), %rsi      # 0xb31f
leaq 0xe(%rsp), %rdx
movq %r14, %rdi
callq 0x7286
leaq 0x190(%rsp), %r14
leaq 0x53f3(%rip), %rsi      # 0xb327
leaq 0xd(%rsp), %rdx
movq %r14, %rdi
callq 0x7286
leaq 0x1b0(%rsp), %r14
leaq 0x53df(%rip), %rsi      # 0xb32f
leaq 0xc(%rsp), %rdx
movq %r14, %rdi
callq 0x7286
leaq 0x1d0(%rsp), %r14
leaq 0x539b(%rip), %rsi      # 0xb307
leaq 0xb(%rsp), %rdx
movq %r14, %rdi
callq 0x7286
leaq 0x1f0(%rsp), %r14
leaq 0x5377(%rip), %rsi      # 0xb2ff
leaq 0xa(%rsp), %rdx
movq %r14, %rdi
callq 0x7286
leaq 0x18(%rsp), %rdi
movq %r15, %rsi
callq 0x4cac
movl 0x4c(%r15), %r14d
pushq $0xe
popq %r13
testl %r14d, %r14d
jle 0x60a2
decq %r14
xorl %r12d, %r12d
movslq 0xb3b0(%rip), %rax      # 0x11370
cmpq %rax, %r12
jge 0x6091
movq 0x58(%r15), %rax
movq (%rax,%r12,8), %rax
cmpl $0x0, (%rax,%r14,4)
je 0x6057
leaq 0x30(%rsp), %rbp
xorl %ebx, %ebx
movq %rbx, %rax
xorl %edx, %edx
divq %r13
movq 0x18(%rsp), %rcx
movq 0x20(%rsp), %rdx
subq %rcx, %rdx
shrq $0x2, %rdx
movslq %edx, %rdx
cmpq %rdx, %rbx
jge 0x6089
movl (%rcx,%rbx,4), %ecx
movq 0x58(%r15), %rdx
movq (%rdx,%r12,8), %rdx
cmpl (%rdx,%r14,4), %ecx
jne 0x604e
imulq $-0x1c0, %rax, %rsi     # imm = 0xFE40
addq %rbp, %rsi
movq 0xafb2(%rip), %rdi      # 0x10fd8
callq 0x4200
movq 0x58(%r15), %rcx
movq (%rcx,%r12,8), %rcx
movl (%rcx,%r14,4), %esi
movq %rax, %rdi
callq 0x4410
movq %rax, %rdi
leaq 0x52fb(%rip), %rsi      # 0xb344
callq 0x4240
incq %rbx
addq $0x20, %rbp
jmp 0x5fdf
movq 0xaf7a(%rip), %rdi      # 0x10fd8
leaq 0x1f0(%rsp), %rsi
callq 0x4200
movq %rax, %rdi
leaq 0x52c2(%rip), %rsi      # 0xb337
callq 0x4240
movq %rax, %rdi
leaq 0x52c0(%rip), %rsi      # 0xb344
callq 0x4240
incq %r12
jmp 0x5fb9
movq 0xaf40(%rip), %rdi      # 0x10fd8
callq 0x4100
jmp 0x5faa
movq 0xaf2f(%rip), %rdi      # 0x10fd8
leaq 0x1f0(%rsp), %rsi
callq 0x4200
movq %rax, %rdi
callq 0x4100
leaq 0x18(%rsp), %rdi
callq 0x4cfa
movl $0x1c0, %ebx            # imm = 0x1C0
leaq (%rsp,%rbx), %rdi
addq $0x30, %rdi
callq 0x40f0
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x60cd
addq $0x218, %rsp            # imm = 0x218
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
jmp 0x613e
jmp 0x6115
jmp 0x6115
jmp 0x6115
jmp 0x6115
jmp 0x6115
jmp 0x6115
jmp 0x6115
jmp 0x6115
jmp 0x6115
jmp 0x6115
jmp 0x6115
jmp 0x6115
jmp 0x6115
movq %rax, %r15
addq $-0x20, %r14
movq %r14, %rdi
callq 0x40f0
cmpq %rbx, %r14
jne 0x6118
jmp 0x615a
jmp 0x6131
jmp 0x6131
jmp 0x6131
movq %rax, %r15
leaq 0x18(%rsp), %rdi
callq 0x4cfa
movl $0x1c0, %ebx            # imm = 0x1C0
leaq (%rsp,%rbx), %rdi
addq $0x30, %rdi
callq 0x40f0
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x6143
movq %r15, %rdi
callq 0x4440