Search⌘ K
AI Features

Problem: Find the Winner of the Circular Game

Explore how to simulate a circular elimination game with n friends using a queue data structure in Java. Understand how rotating and removing elements models the game's steps, and learn to determine the winner efficiently. This lesson teaches you to apply queue operations to solve circular counting problems and analyze time and space complexity.

Statement

A group of n friends is seated in a circle, numbered from 11 to n in clockwise order. Specifically, moving clockwise from friend i leads to friend i + 1 for 11 \leq i << n, and moving clockwise from friend n wraps back to friend 11.

The game proceeds as follows:

  1. Begin at friend 11.

  2. Starting from the current friend, count k friends in the clockwise direction (including the current friend). The counting wraps around the circle and may count some friends more than once.

  3. The last friend counted is ...