// File: /workspace/github_cpp_makefile_star2_O3/iZhangHui[P]CppPrimer/CH11_AssociativeContainers/examples/pair.cc
// Function: main
int main()
{
	vector<string> v;
	string s;
	while (cin >> s)
		v.push_back(s);

	preliminaries(v);  // sort v into size order

	// all three output statements should be the same
	auto biggest = process(v);
	cout << biggest.first << " " << biggest.second << endl;
	biggest = process2(v);
	cout << biggest.first << " " << biggest.second << endl;
	biggest = process3(v);
	cout << biggest.first << " " << biggest.second << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x90, %rsp
xorps %xmm0, %xmm0
leaq -0x60(%rbp), %rbx
movaps %xmm0, (%rbx)
xorl %eax, %eax
movq %rax, 0x10(%rbx)
leaq -0x70(%rbp), %r12
movq %r12, -0x10(%r12)
movq %rax, -0x8(%r12)
movb $0x0, (%r12)
movq 0x37ad(%rip), %r14      # 0x5fe0
leaq -0x80(%rbp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x2150
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x285d
movq %rbx, %rdi
movq %r15, %rsi
callq 0x354c
jmp 0x2837
leaq -0x60(%rbp), %rdi
callq 0x24ac
leaq -0x48(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x26bb
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x374e(%rip), %rdi      # 0x5fd0
callq 0x2130
movq %rax, %rbx
leaq 0x1799(%rip), %rsi      # 0x402a
movl $0x1, %edx
movq %rax, %rdi
callq 0x2130
movl -0x28(%rbp), %esi
movq %rbx, %rdi
callq 0x2190
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2100
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
leaq -0xa8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x270d
leaq -0x48(%rbp), %rbx
leaq -0xa8(%rbp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2140
movl 0x20(%r14), %eax
movl %eax, 0x20(%rbx)
movq (%r14), %rdi
leaq -0x98(%rbp), %r15
cmpq %r15, %rdi
je 0x291e
movq -0x98(%rbp), %rsi
incq %rsi
callq 0x2120
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x36a3(%rip), %rdi      # 0x5fd0
callq 0x2130
movq %rax, %rbx
leaq 0x16ee(%rip), %rsi      # 0x402a
movl $0x1, %edx
movq %rax, %rdi
callq 0x2130
movl -0x28(%rbp), %esi
movq %rbx, %rdi
callq 0x2190
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2100
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
leaq -0xa8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x27a5
leaq -0x48(%rbp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2140
movl 0x20(%r14), %eax
movl %eax, 0x20(%rbx)
movq (%r14), %rdi
cmpq %r15, %rdi
je 0x29bb
movq -0x98(%rbp), %rsi
incq %rsi
callq 0x2120
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x3606(%rip), %rdi      # 0x5fd0
callq 0x2130
movq %rax, %rbx
leaq 0x1651(%rip), %rsi      # 0x402a
movl $0x1, %edx
movq %rax, %rdi
callq 0x2130
movl -0x28(%rbp), %esi
movq %rbx, %rdi
callq 0x2190
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2100
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2a34
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2120
movq -0x80(%rbp), %rdi
cmpq %r12, %rdi
je 0x2a49
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x2120
leaq -0x60(%rbp), %rdi
callq 0x3598
xorl %eax, %eax
addq $0x90, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2a6c
jmp 0x2a6c
jmp 0x2a8a
jmp 0x2a8a
movq %rax, %rbx
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2a8d
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2120
jmp 0x2a8d
movq %rax, %rbx
movq -0x80(%rbp), %rdi
cmpq %r12, %rdi
je 0x2aa2
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x2120
leaq -0x60(%rbp), %rdi
callq 0x3598
movq %rbx, %rdi
callq 0x21a0