Skip to main content
Back to problems
#3021
Medium Algorithms

Alice and bob playing flower game

Math
60.1% acceptance
Feb 25, 2026
518
275
Alice and Bob are playing a turn-based game on a field, with two lanes of flowers between them. There are x flowers in the first lane between Alice and Bob, and y flowers in the second lane between them. The game proceeds as follows: Alice takes the first turn. In each turn, a player must choose either one of the lane and pick one flower from that side. At the end of the turn, if there are no flowers left at all in either lane, 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 first lane must be in the range [1,n]. The number of flowers y in the second lane must be in the range [1,m]. Return the number of possible pairs (x, y) that satisfy the conditions mentioned in the statement.

Solution

Rust
Time O(1)
Space O(1)
LeetCode
solution.rs
impl Solution {
  pub fn flower_game(n: i32, m: i32) -> i64 {
    // Alice wins when x + y is odd (she takes the last flower on her turn)
    // Pairs where x+y is odd: (x odd, y even) or (x even, y odd)
    let n = n as i64;
    let m = m as i64;
    let odd_n = (n + 1) / 2;
    let even_n = n / 2;
    let odd_m = (m + 1) / 2;
    let even_m = m / 2;
    odd_n * even_m + even_n * odd_m
  }
}