LeetCode in Kotlin

3021. Alice and Bob Playing Flower Game

Medium

Alice and Bob are playing a turn-based game on a circular field surrounded by flowers. The circle represents the field, and there are x flowers in the clockwise direction between Alice and Bob, and y flowers in the anti-clockwise direction between them.

The game proceeds as follows:

  1. Alice takes the first turn.
  2. In each turn, a player must choose either the clockwise or anti-clockwise direction and pick one flower from that side.
  3. At the end of the turn, if there are no flowers left at all, the current player captures their opponent and wins the game.

Given two integers, n and m, the task is to compute the number of possible pairs (x, y) that satisfy the conditions:

Return the number of possible pairs (x, y) that satisfy the conditions mentioned in the statement.

Example 1:

Input: n = 3, m = 2

Output: 3

Explanation: The following pairs satisfy conditions described in the statement: (1,2), (3,2), (2,1).

Example 2:

Input: n = 1, m = 1

Output: 0

Explanation: No pairs satisfy the conditions described in the statement.

Constraints:

Solution

class Solution {
    fun flowerGame(n: Int, m: Int): Long {
        val nEven = n.toLong() / 2
        val nOdd = n - nEven
        val mEven = m.toLong() / 2
        val mOdd = m - mEven
        return nEven * mOdd + nOdd * mEven
    }
}