Find the number of spectators standing in the stadium at time t in Python

This problem simulates spectators standing and sitting in a stadium over time. There are n spectators labeled 1 to n, where at most k spectators can stand simultaneously. We need to find how many spectators are standing at time t.

Problem Understanding

The pattern works as follows:

  • At time t1, the first spectator stands.

  • At time t2, the second spectator stands.

  • ...

  • At time tk, the k-th spectator stands.

  • At time tk + 1, the (k + 1)-th spectator stands and the first spectator sits.

  • At time tk + 2, the (k + 2)-th spectator stands and the second spectator sits.

  • ...

  • At time tn, the n-th spectator stands and the (n ? k)-th spectator sits.

  • At time tn + 1, the (n + 1 ? k)-th spectator sits.

  • ...

  • At time tn + k, the n-th spectator sits.

Solution Logic

The solution follows three key phases:

  • Phase 1 (t ? k): Spectators are only standing, so the count equals t.

  • Phase 2 (k < t ? n): Maximum k spectators are standing simultaneously.

  • Phase 3 (t > n): Spectators start sitting down, so the count decreases.

Implementation

def how_many_stand(n, k, t):
    if t <= k:
        return t
    elif t <= n:
        return k
    else:
        res = t - n
        res = k - res
        return res

# Test with example values
n = 11  # Total spectators
k = 6   # Maximum standing at once
t = 4   # Time point

result = how_many_stand(n, k, t)
print(f"At time {t}, {result} spectators are standing")
At time 4, 4 spectators are standing

Testing Different Scenarios

def how_many_stand(n, k, t):
    if t <= k:
        return t
    elif t <= n:
        return k
    else:
        res = t - n
        res = k - res
        return res

# Test different time points
n, k = 11, 6
test_times = [3, 6, 10, 12, 15, 17]

for time in test_times:
    standing = how_many_stand(n, k, time)
    print(f"Time {time}: {standing} spectators standing")
Time 3: 3 spectators standing
Time 6: 6 spectators standing
Time 10: 6 spectators standing
Time 12: 5 spectators standing
Time 15: 2 spectators standing
Time 17: 0 spectators standing

How It Works

For the example with n=11, k=6, t=4:

  • Since t=4 ? k=6, we're in the first phase

  • Only spectators are standing (no one sits yet)

  • At time 4, spectators 1, 2, 3, and 4 are standing

  • Therefore, the answer is 4

Conclusion

This solution efficiently determines the number of standing spectators by identifying which phase the given time falls into. The algorithm runs in O(1) time complexity, making it optimal for this problem.

Updated on: 2026-03-25T09:53:10+05:30

178 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements