// File: /workspace/github_cpp_makefile_star2_O2/quancs[P]EAVC/./eavc.h
// Function: init_sol()
void init_sol() {
    //use dVDegree as vDegree
    int *dscoreTemp = new int[vNum];
    VerticeStatus *vInCTemp = new VerticeStatus[vNum];
    unsigned int cvSizeTemp = 0;

    memset(vTimestamp, 0, sizeof(unsigned int) * vNum);

    init_vertex_greedy_vc(dscoreTemp, vInCTemp, cvSizeTemp);
    check_solution(vInCTemp, cvSizeTemp + total_IN_ABS, dscoreTemp);
    std::swap(vInC, vInCTemp);
    std::swap(dscore, dscoreTemp);
    cvSize = cvSizeTemp;

    init_edge_greedy_vc(dscoreTemp, vInCTemp, cvSizeTemp);
    check_solution(vInCTemp, cvSizeTemp + total_IN_ABS, dscoreTemp);
    if (cvSizeTemp < cvSize) {
        std::swap(vInC, vInCTemp);
        std::swap(dscore, dscoreTemp);
        cvSize = cvSizeTemp;
    }

    init_match_vc(dscoreTemp, vInCTemp, cvSizeTemp);
    check_solution(vInCTemp, cvSizeTemp + total_IN_ABS, dscoreTemp);
    if (cvSizeTemp < cvSize) {
        std::swap(vInC, vInCTemp);
        std::swap(dscore, dscoreTemp);
        cvSize = cvSizeTemp;
    }

    //construct other structures
    update_best_sol();

    //cAllVertexes layout:IN_ABS vertices | IN vertices | unused area
    //cVertexes layout:IN vertices | unused area
    cAllVertexes = cVertexes;
    cVertexes = &(cAllVertexes[total_IN_ABS]);
    cAVSize = cvSize + total_IN_ABS;
    cvSize = 0;
    for (unsigned i = 0; i < uvSize; i++) {
        unsigned v = uvSet[i];
        if (in(vInC, v)) {
            cVertexes[cvSize] = v;
            cVertexIndexes[v] = cvSize;
            cvSize++;
        }
    }

    ueSize = 0;

    cout << "c init best = " << cAVSize << endl;
    delete [] dscoreTemp;
    delete [] vInCTemp;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl 0x41a2(%rip), %ebx      # 0x713c
leaq (,%rbx,4), %r14
movq %r14, %rdi
callq 0x2030
movq %rax, %r12
movq %rbx, %rdi
callq 0x2030
movq %rax, %r13
leaq 0x4(%rsp), %r15
andl $0x0, (%r15)
movq 0x41a8(%rip), %rdi      # 0x7170
xorl %esi, %esi
movq %r14, %rdx
callq 0x20d0
movq %r12, %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x31b0
movl (%r15), %ebp
movl 0x420b(%rip), %esi      # 0x71f4
addl %ebp, %esi
movq %r13, %rdi
movq %r12, %rdx
callq 0x398b
movq 0x4193(%rip), %rbx      # 0x7190
movq %r13, 0x418c(%rip)      # 0x7190
movq 0x415d(%rip), %r14      # 0x7168
movq %r12, 0x4156(%rip)      # 0x7168
movl %ebp, 0x41d8(%rip)      # 0x71f0
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x3bfe
movl (%r15), %ebp
movl 0x41c5(%rip), %esi      # 0x71f4
addl %ebp, %esi
movq %rbx, %rdi
movq %r14, %rdx
callq 0x398b
cmpl 0x41ae(%rip), %ebp      # 0x71f0
jae 0x306c
movq 0x4145(%rip), %rax      # 0x7190
movq %rbx, 0x413e(%rip)      # 0x7190
movq 0x410f(%rip), %rcx      # 0x7168
movq %r14, 0x4108(%rip)      # 0x7168
movl %ebp, 0x418a(%rip)      # 0x71f0
movq %rcx, %r14
movq %rax, %rbx
leaq 0x4(%rsp), %r15
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x3e4b
movl (%r15), %ebp
movl 0x416c(%rip), %esi      # 0x71f4
addl %ebp, %esi
movq %rbx, %rdi
movq %r14, %rdx
callq 0x398b
cmpl 0x4155(%rip), %ebp      # 0x71f0
jae 0x30c5
movq 0x40ec(%rip), %rax      # 0x7190
movq %rbx, 0x40e5(%rip)      # 0x7190
movq 0x40b6(%rip), %rcx      # 0x7168
movq %r14, 0x40af(%rip)      # 0x7168
movl %ebp, 0x4131(%rip)      # 0x71f0
movq %rcx, %r14
movq %rax, %rbx
callq 0x4b27
movq 0x40c7(%rip), %rax      # 0x7198
movq %rax, 0x4150(%rip)      # 0x7228
movl 0x4116(%rip), %ecx      # 0x71f4
leaq (%rax,%rcx,4), %rax
movq %rax, 0x40af(%rip)      # 0x7198
movl 0x4101(%rip), %edx      # 0x71f0
andl $0x0, 0x40fa(%rip)      # 0x71f0
addl %ecx, %edx
movl %edx, 0x4132(%rip)      # 0x7230
movl 0x40e4(%rip), %ecx      # 0x71e8
movq 0x40d5(%rip), %rdx      # 0x71e0
movq 0x407e(%rip), %rsi      # 0x7190
movq 0x4087(%rip), %rdi      # 0x71a0
xorl %r8d, %r8d
xorl %r9d, %r9d
cmpq %r8, %rcx
je 0x3149
movl (%rdx,%r8,4), %r10d
cmpb $0x3, (%rsi,%r10)
jb 0x3144
movl %r9d, %r11d
movl %r10d, (%rax,%r11,4)
movl %r9d, (%rdi,%r10,4)
incl %r9d
movl %r9d, 0x40ac(%rip)      # 0x71f0
incq %r8
jmp 0x311f
andl $0x0, 0x409c(%rip)      # 0x71ec
movq 0x3e81(%rip), %rdi      # 0x6fd8
leaq 0x1f11(%rip), %rsi      # 0x506f
callq 0x2150
movl 0x40c7(%rip), %esi      # 0x7230
movq %rax, %rdi
callq 0x20f0
movq %rax, %rdi
callq 0x20c0
testq %r14, %r14
je 0x3186
movq %r14, %rdi
callq 0x2170
testq %rbx, %rbx
je 0x31a1
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2170
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq