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 C++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include<bits/stdc++.h>
using namespace std;
int n,k;
char s[100005];
vector<int>v;
int main()
{
    scanf("%d%d",&n,&k);
    scanf("%s",s+1);
    int ans=0;
    bool flag=true;
    for(int i=1;i<=n;i++)
    {
        if(s[i]=='0'&&flag)
            flag=false,v.push_back(i);
        if(s[i]=='1')
            flag=true;
    }
    v.push_back(n+1);
    int pos=0,si=v.size();
    flag=true;
    for(int i=1;i<=n;i++)
    {
        if(s[i]=='0'&&flag)
            flag=false,pos++;
        if(s[i]=='1')
        {
            flag=true;
            //cout<<i<<' '<<pos<<' '<<pos+k<<' '<<v[min(pos+k,si-1)]<<endl;
            ans=max(ans,v[min(pos+k,si-1)]-i);
        }
    }
    cout<<ans<<endl;
}