3021. Alice and Bob Playing Flower Game LeetCode Solution
In this guide, you will get 3021. Alice and Bob Playing Flower Game LeetCode Solution with the best time and space complexity. The solution to Alice and Bob Playing Flower Game problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Alice and Bob Playing Flower Game solution in C++
- Alice and Bob Playing Flower Game solution in Java
- Alice and Bob Playing Flower Game solution in Python
- Additional Resources

Problem Statement of 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:
Alice takes the first turn.
In each turn, a player must choose either the clockwise or anti-clockwise direction and pick one flower from that side.
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.
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:
1 <= n, m <= 105
Complexity Analysis
- Time Complexity: O(1)
- Space Complexity: O(1)
3021. Alice and Bob Playing Flower Game LeetCode Solution in C++
class Solution {
public:
long long flowerGame(int n, int m) {
// Alice wins if x + y is odd, occurring when:
// 1. x is even and y is odd, or
// 2. y is even and x is odd.
const int xEven = n / 2;
const int yEven = m / 2;
const int xOdd = (n + 1) / 2;
const int yOdd = (m + 1) / 2;
return static_cast<long>(xEven) * yOdd + static_cast<long>(yEven) * xOdd;
}
};
/* code provided by PROGIEZ */
3021. Alice and Bob Playing Flower Game LeetCode Solution in Java
class Solution {
public long flowerGame(int n, int m) {
// Alice wins if x + y is odd, occurring when:
// 1. x is even and y is odd, or
// 2. y is even and x is odd.
final int xEven = n / 2;
final int yEven = m / 2;
final int xOdd = (n + 1) / 2;
final int yOdd = (m + 1) / 2;
return (long) xEven * yOdd + (long) yEven * xOdd;
}
}
// code provided by PROGIEZ
3021. Alice and Bob Playing Flower Game LeetCode Solution in Python
class Solution:
def flowerGame(self, n: int, m: int) -> int:
# Alice wins if x + y is odd, occurring when:
# 1. x is even and y is odd, or
# 2. y is even and x is odd.
xEven = n // 2
yEven = m // 2
xOdd = (n + 1) // 2
yOdd = (m + 1) // 2
return xEven * yOdd + yEven * xOdd
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.