Previous Next
0 / 4
Module DS-05DSJAVA

Round-Robin Completion Order

DSJAVA β€’ Data Structures and Algorithms in Java

Browser-only practice

Problem Statement

Application lab in Queues and Fair Scheduling

Mission

Run jobs for a fixed quantum and print job indexes as they complete.

Learning outcome: Apply round-robin scheduling

Correctness contract

Invariant: Dequeue returns the oldest live item while preserving the relative order of all others.

Required technique: Keep job identity with remaining work in a FIFO queue and re-enqueue unfinished jobs.

Complexity target: time O(total work / quantum); space O(n).

Input and output

Input: n, then n positive job durations, then a positive time quantum. Whitespace may be spaces or line breaks.

Output: Print only the exact value shown by the task contract. Return it as a String; Main.java prints it without adding other text.

Assumptions:

  • Every duration and the time quantum are positive integers.

Before you code

  1. Restate the input and output contract, then predict the visible example without running code.
  2. Implement the core state transition: Keep job identity with remaining work in a FIFO queue and re-enqueue unfinished jobs.
  3. Trace the smallest boundary case, verify exact formatting, and justify the authored time and auxiliary-space bounds.

Implement Practice.solve(Scanner sc). Keep every provided filename and public class name unchanged.

Sample input

3 5 3 1 2

Sample output

2 1 0

Why the sample works: Visible walkthrough for the ordinary non-trivial path. Each front job receives one quantum; completed identities are recorded and unfinished jobs return to the rear. Input `3 5 3 1 2` therefore produces `2 1 0`.

Progressive hints

Try the trace and first milestone before opening a hint. Open them in order.

Open hint 1

Hint 1 β€” Contract: identify what each parsed variable represents and write the invariant beside the loop or recursive method.

Open hint 2

Hint 2 β€” Next step: Subtract min(remaining, quantum), then decide whether to complete or re-enqueue the job.

Open hint 3

Hint 3 β€” Verification: compare the structure state before and after one operation, then test the smallest valid input and a duplicate or unreachable case when allowed.

Constraints

Input contract: n, then n positive job durations, then a positive time quantum.

  • Every duration and the time quantum are positive integers.

Required technique: Keep job identity with remaining work in a FIFO queue and re-enqueue unfinished jobs.

Output contract: Print only the exact value shown by the task contract.

Use Java 8-compatible code only. Keep the public class names and Practice.solve(Scanner sc) signature from the starter files.

Input Format

n, then n positive job durations, then a positive time quantum.

Output Format

Print only the exact value shown by the task contract.

Sample Testcases

Submit runs every public testcase in this browser. Results and code never leave this device.

Sample #1
Public sample
3 5 3 1 2
2 1 0
Visible walkthrough for the ordinary non-trivial path. Each front job receives one quantum; completed identities are recorded and unfinished jobs return to the rear. Input `3 5 3 1 2` therefore produces `2 1 0`.

Web terminal

C, C++, Java, and Python run locally in a browser VM. No worker or visualizer is used.

Saved in this browser
Editor settings