Problem:
Score : 100 points

Problem Statement

There are two buttons, one of size A and one of size B.

When you press a button of size X, you get X coins and the size of that button decreases by 1.

You will press a button twice. Here, you can press the same button twice, or press both buttons once.

At most how many coins can you get?

Constraints

All values in input are integers.

3 \leq A, B \leq 20

Input

Input is given from Standard Input in the following format:

A B

Output

Print the maximum number of coins you can get.

Sample Input 1

5 3

Sample Output 1

9

You can get 5 + 4 = 9 coins by pressing the button of size 5 twice, and this is the maximum result.

Sample Input 2

3 4

Sample Output 2

7

Sample Input 3

6 6

Sample Output 3

12

Solution in Scala (2.11.7) (judge verdict: Accepted)

import java.util.Scanner

object Main {
  def main(args: Array[String]): Unit = {
    val sc = new Scanner(System.in)
    val buttons: Array[Int] = sc.nextLine().split(" ").map(k => k.toInt)

    @annotation.tailrec
    def go(button1:Int, button2: Int, n: Int, acc: Int): Int ={
      if (n==0)
        acc
      else{
        if (button1 >= button2) {
          val outcome = getNumberFromBotton(button1)
          go(outcome._2, button2, n -1, acc + outcome._1)
        }
        else {
          val outcome = getNumberFromBotton(button2)
          go(button1, outcome._2, n -1, acc + outcome._1)
        }
      }
    }
    println(go(buttons(0), buttons(1), 2, 0))


  }

  def getNumberFromBotton(button: Int): Tuple2[Int, Int] = {
    Tuple2(button, button - 1)
  }
}