// File: /workspace/github_cpp_makefile_star2_O1/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 0x3791(%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 0x2879
movq %rbx, %rdi
movq %r15, %rsi
callq 0x356e
jmp 0x2853
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 0x3732(%rip), %rdi      # 0x5fd0
callq 0x2130
movq %rax, %rbx
leaq 0x177d(%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 0x2711
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 0x293a
movq -0x98(%rbp), %rsi
incq %rsi
callq 0x2120
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x3687(%rip), %rdi      # 0x5fd0
callq 0x2130
movq %rax, %rbx
leaq 0x16d2(%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 0x27bd
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 0x29d7
movq -0x98(%rbp), %rsi
incq %rsi
callq 0x2120
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x35ea(%rip), %rdi      # 0x5fd0
callq 0x2130
movq %rax, %rbx
leaq 0x1635(%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 0x2a50
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2120
movq -0x80(%rbp), %rdi
cmpq %r12, %rdi
je 0x2a65
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x2120
leaq -0x60(%rbp), %rdi
callq 0x35ba
xorl %eax, %eax
addq $0x90, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2a88
jmp 0x2a88
jmp 0x2aa6
jmp 0x2aa6
movq %rax, %rbx
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2aa9
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2120
jmp 0x2aa9
movq %rax, %rbx
movq -0x80(%rbp), %rdi
cmpq %r12, %rdi
je 0x2abe
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x2120
leaq -0x60(%rbp), %rdi
callq 0x35ba
movq %rbx, %rdi
callq 0x21a0