No Streak

AtCoder
IDagc070_c
Time3000ms
Memory256MB
Difficulty
Alice and Bob played rock-paper-scissors $N$ times. Each round of rock-paper-scissors results in “Alice’s win,” “Bob’s win,” or “Draw.” Among all possible sequences of results of $N$ rounds, how many satisfy the following conditions? Find the count modulo $\bf{1000000007 = 10^9 + 7}$. * Among the $N$ rounds, Alice won exactly $A$ times and Bob won exactly $B$ times. * Alice never won twice in a row without intervening draws. * Bob never won twice in a row without intervening draws. * At no point did Bob’s number of wins exceed Alice’s number of wins. Formally, for all $1 \leq i \leq N$, “the number of times Alice has won up through round $i$” is at least “the number of times Bob has won up through round $i$.” ## Constraints * $2 \leq N \leq 2 \times 10^7$ * $1 \leq B \leq A$ * $A + B \leq N$ * $N$, $A$, and $B$ are integers. ## Input The input is given from Standard Input in the following format: $N$ $A$ $B$ [samples]
Samples
Input #1
5 2 2
Output #1
5

For example, the following sequence of $N$ rounds satisfies the conditions:

*   Round $1$: Alice wins.
*   Round $2$: Bob wins.
*   Round $3$: Alice wins.
*   Round $4$: Draw.
*   Round $5$: Bob wins.

On the other hand, the following sequence of $N$ rounds does **not** satisfy the conditions, because after round $4$, Alice’s number of wins $(=1)$ is less than Bob’s number of wins $(=2)$:

*   Round $1$: Alice wins.
*   Round $2$: Bob wins.
*   Round $3$: Draw.
*   Round $4$: Bob wins.
*   Round $5$: Alice wins.

There are five sequences in total that satisfy the conditions.
Input #2
70 29 12
Output #2
693209192

Remember to find the count modulo $(10^9 + 7)$.
Input #3
20000000 1234567 890123
Output #3
566226457
API Response (JSON)
{
  "problem": {
    "name": "No Streak",
    "description": {
      "content": "Alice and Bob played rock-paper-scissors $N$ times. Each round of rock-paper-scissors results in “Alice’s win,” “Bob’s win,” or “Draw.”   Among all possible sequences of results of $N$ rounds, how man",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 3000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "agc070_c"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Alice and Bob played rock-paper-scissors $N$ times. Each round of rock-paper-scissors results in “Alice’s win,” “Bob’s win,” or “Draw.”  \nAmong all possible sequences of results of $N$ rounds, how man...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments