Reported August 2026
Robloxsimulation

Event ID Check Completion Times

Reported by candidates from Roblox's online assessment. Pattern, common pitfall, and the honest play if you blank under the timer.

Get StealthCoderRuns invisibly during the live Roblox OA. Under 2s to a working solution.
Founder's read

Roblox reported this one in August 2026, and it looks too easy until your output is off by one person. It's a single-server queue simulation with a 300 second check and a cap on waiting people. Arrivals are sorted, so you walk them once and track state. The mistake that sinks a first attempt is miscounting who is waiting at the moment someone arrives, especially when a check finishes at that exact second. If you blank on the tie rule, StealthCoder is the safety net running invisibly during the live OA. Here's the script before you sit down.

The problem

An exclusive event starts at time 0. People arrive over time, and one identification-check station processes them before entry. Every ID check takes exactly 300 seconds (5 minutes).
Given a nondecreasing integer array times, where times[i] is the arrival time in seconds of person i, return an integer array containing one result for each person in input order:
If the person joins the line, return the time when their ID check finishes.
If the person leaves immediately, return their arrival time.
Process arrivals chronologically. People with the same arrival time are considered in input order. The queue follows these rules:
The queue size counts only people waiting to start their ID check. It does not include the person currently being checked.
A person leaves only when they arrive and see more than 10 people waiting. A person who sees exactly 10 people waiting joins the queue.
If an arrival occurs at the same time as a check finishes, apply that completion first. A person who was already waiting starts before the new arrival is considered, so the newcomer waits behind the existing queue.
A person who leaves does not occupy the station or the queue.
A solution with time complexity no worse than O(times.length^2) fits within the execution limit.

Function
solution(times: int[]) → int[]

Examples
Example 1
times = [4,400,450,500]
return = [304,700,1000,1300]
The person arriving at 4 starts immediately and finishes at 304. The person arriving at 400 also finds an idle station and finishes at 700. The arrivals at 450 and 500 wait in that order, so their checks finish at 1000 and 1300.
Example 2
times = [0,100,300]
return = [300,600,900]
The first check finishes at 300. At that same time, the person who arrived at 100 was already waiting and starts next, finishing at 600. The new arrival at 300 waits behind them and finishes at 900.

Constraints
1 ≤ times.length ≤ 1000
0 ≤ times[i] ≤ 10^9
times[i] ≤ times[i + 1] for every valid i

Reported by candidates. Source: FastPrep

Pattern and pitfall

The trick: you don't need a real queue. Keep a list of finish times for everyone who joined. A person arriving at time t is waiting if their check hasn't started yet, meaning their start time (their finish minus 300) is strictly greater than t. Count those. If the count exceeds 10, the arrival leaves and you output t. Otherwise their start is max(t, last finish), and their finish is start plus 300. The pitfall is the tie rule. If a check finishes at exactly t, the next waiting person starts at t, so they're no longer waiting, and the newcomer goes behind them. Use strict greater-than on start times and you get that for free. Another trap is counting the person currently being checked as waiting. Don't. With n up to 1000, an O(n^2) scan is fine, and a pointer or deque makes it O(n). If you freeze live, StealthCoder can hand you the logic as a hedge.

If you see this problem in your OA tomorrow, the play is to recognize the pattern in 30 seconds. StealthCoder buys you that recognition.

If this hits your live OA

You can drill Event ID Check Completion Times cold, or you can hedge it. StealthCoder runs invisibly during screen share and surfaces a working solution in under 2 seconds. The proctor sees the IDE. They don't see what's behind it. Built by an Amazon engineer who passed his OA cold and still thinks the filter is broken.

Get StealthCoder

Related leaked OAs

⏵ The honest play

You've seen the question. Make sure you actually pass Roblox's OA.

Roblox reuses patterns across OAs. Built by an Amazon engineer who passed his OA cold and still thinks the filter is broken. Works on HackerRank, CodeSignal, CoderPad, and Karat.

Event ID Check Completion Times FAQ

How hard is the Roblox Event ID Check problem really?+

Easy to medium. There's no fancy algorithm, just a careful simulation. Most failures come from the tie rule when an arrival lands exactly on a finish time, and from counting the person being checked as waiting. Get those two right and it's short.

What's the trick to counting people waiting?+

Store each joined person's start time. When someone arrives at t, count joined people whose start time is strictly greater than t. Those haven't begun their check yet. The person being checked has start at or before t, so they're excluded automatically.

How do I handle an arrival at the exact moment a check finishes?+

Apply the completion first. The next waiting person starts at that time, so their start equals t and they're not counted as waiting. The newcomer then queues behind them. Strict greater-than on start times handles this without special cases.

Do I need a real queue or can I use arithmetic?+

Arithmetic works. Track the last finish time. A joiner's start is max(arrival, last finish) and their finish is start plus 300. A leaver doesn't change last finish. Keep a list of starts to count waiters, or use a pointer to stay linear.

How do I prepare for this in 48 hours?+

Write the simulation by hand on both examples, then test edge cases: 11 arrivals at the same time, an arrival exactly at a finish, and a long idle gap. Check that the 11th waiting person leaves and the 10th joins. That covers nearly every bug.

Problem reported by candidates from a real Online Assessment. Sourced from a publicly-available candidate-aggregated repository. Not affiliated with Roblox.

OA at Roblox?
Invisible during screen share
Get it