[LeetCode] Alice and Bob Playing Flower Game

3021. Alice and Bob Playing Flower Game

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:

  • Alice must win the game according to the described rules.
  • The number of flowers x in the clockwise direction must be in the range [1,n].
  • The number of flowers y in the anti-clockwise direction must be in the range [1,m].

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

1
2
3
4
5
6
7
8
9
class Solution {
public:
long long flowerGame(int n, int m) {
long long even = m / 2;
long long odd = m - even;
long long on = n - (n / 2);
return on * even + (n - on) * odd;
}
};
Author: Song Hayoung
Link: https://songhayoung.github.io/2024/01/28/PS/LeetCode/alice-and-bob-playing-flower-game/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.