// File: mxy161610207[P]codesim/src/MyPaser.cpp
// Function: MyPaser::FuncCompare(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&)
int MyPaser::FuncCompare(vector<string>& a, vector<string>& b) {

	/*
	for (auto& i : a) {
		cout << i << ",";
	}
	cout << endl;
	for (auto& i : b) {
		cout << i << ",";
	}
	cout << endl;
	//*/

	int ans = 0;
	int w = (int)((double)a.size() * 3.0 / 2.0);
	int na = a.size();
	int nb = b.size();
	vector<string> c; c.clear();
	for (int k = 0; k < nb; k++) {
		if (k + 1 + w < nb) {
			c.assign(b.begin() + k, b.begin() + k + w + 1);
		}
		else {
			c.assign(b.begin() + k, b.end());
		}
		int tmp = LCS(a, c);
		ans = max(ans, tmp);
	}
	return ans;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movq -0x8(%rbp), %rdi
callq 0x45c0
movq %rax, %xmm0
movaps 0x6b51(%rip), %xmm1     # 0xa040
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x6b55(%rip), %xmm1     # 0xa050
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x6afe(%rip), %xmm1     # 0xa010
mulsd %xmm1, %xmm0
movsd 0x6aea(%rip), %xmm1     # 0xa008
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x45c0
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
callq 0x45c0
movl %eax, -0x20(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x45e0
leaq -0x38(%rbp), %rdi
callq 0x4600
movl $0x0, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
cmpl -0x20(%rbp), %eax
jge 0x36ac
movl -0x3c(%rbp), %eax
addl $0x1, %eax
addl -0x18(%rbp), %eax
cmpl -0x20(%rbp), %eax
jge 0x3606
movq -0x10(%rbp), %rdi
callq 0x4620
movq %rax, -0x50(%rbp)
movslq -0x3c(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x4970
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rdi
callq 0x4620
movq %rax, -0x70(%rbp)
movslq -0x3c(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0x4970
movq %rax, -0x68(%rbp)
movslq -0x18(%rbp), %rsi
leaq -0x68(%rbp), %rdi
callq 0x4970
movq %rax, -0x60(%rbp)
leaq -0x60(%rbp), %rdi
movl $0x1, %esi
callq 0x4970
movq %rax, -0x58(%rbp)
movq -0x48(%rbp), %rsi
movq -0x58(%rbp), %rdx
leaq -0x38(%rbp), %rdi
callq 0x4930
jmp 0x35ea
jmp 0x3658
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x4700
jmp 0x36cd
movq -0x10(%rbp), %rdi
callq 0x4620
movq %rax, -0x90(%rbp)
movslq -0x3c(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x4970
movq %rax, -0x88(%rbp)
movq -0x10(%rbp), %rdi
callq 0x4650
movq %rax, -0x98(%rbp)
movq -0x88(%rbp), %rsi
movq -0x98(%rbp), %rdx
leaq -0x38(%rbp), %rdi
callq 0x4930
jmp 0x3656
jmp 0x3658
movq -0x8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x3240
movl %eax, -0xa0(%rbp)
jmp 0x366d
movl -0xa0(%rbp), %eax
movl %eax, -0x9c(%rbp)
leaq -0x14(%rbp), %rdi
leaq -0x9c(%rbp), %rsi
callq 0x48f0
movq %rax, -0xa8(%rbp)
jmp 0x3692
movq -0xa8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x14(%rbp)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x355a
movl -0x14(%rbp), %eax
movl %eax, -0xac(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x4700
movl -0xac(%rbp), %eax
addq $0xb0, %rsp
popq %rbp
retq
movq -0x78(%rbp), %rdi
callq 0x23f0
nopw %cs:(%rax,%rax)