Learn
Practice
Interview
Resources
Newsletter
F
Toggle theme
0
F
0
Toggle menu
Animations
← Back to All Animations
Process Tasks Using Servers
Bookmark
Brute Force
Two Heaps
Input
Example 1
Example 2
Simple
Custom
servers
=
[3, 3, 2]
,
tasks
=
[1, 2, 3, 2, 1, 2]
1
0
2
1
3
2
2
3
1
4
2
5
S0
3
free
S1
3
free
S2
2
free
S0:3
S1:3
S2:2
each task goes to the lightest free server, ties to the lowest index
1
0
2
1
3
2
2
3
1
4
2
5
S0
3
free
S1
3
free
S2
2
free
S0:3
S1:3
S2:2
each task goes to the lightest free server, ties to the lowest index
t =
0
assigned =
0
/ 6
1
0
2
1
3
2
2
3
1
4
2
5
S0
3
free
S1
3
free
S2
2
free
free (weight, idx):
busy (release t):
S0:3
S1:3
S2:2
ans:
check
S1
, lightest free so far
S0
t =
1
assigned =
1
/ 6
1
→S2
0
2
1
3
2
2
3
1
4
2
5
S0
3
free
S1
3
free
S2
2
free
free (weight, idx):
busy (release t):
S0:3
S1:3
S2:2
ans:
2
check
S0
, lightest free so far
none
t =
1
assigned =
1
/ 6
1
→S2
0
2
1
3
2
2
3
1
4
2
5
S0
3
free
S1
3
free
S2
2
free
free (weight, idx):
busy (release t):
S0:3
S1:3
S2:2
ans:
2
check
S2
, lightest free so far
S2
t =
2
assigned =
2
/ 6
1
→S2
0
2
→S2
1
3
2
2
3
1
4
2
5
S0
3
free
S1
3
free
S2
2
→ t=3
free (weight, idx):
busy (release t):
S0:3
S1:3
S2@3
ans:
2
2
check
S1
, lightest free so far
S0
t =
3
assigned =
3
/ 6
1
→S2
0
2
→S2
1
3
→S0
2
2
3
1
4
2
5
S0
3
→ t=5
S1
3
free
S2
2
free
free (weight, idx):
busy (release t):
S0@5
S1:3
S2:2
ans:
2
2
0
check
S0
, lightest free so far
none
t =
3
assigned =
4
/ 6
1
→S2
0
2
→S2
1
3
→S0
2
2
→S2
3
1
4
2
5
S0
3
→ t=5
S1
3
free
S2
2
→ t=5
free (weight, idx):
busy (release t):
S0@5
S1:3
S2@5
ans:
2
2
0
2
lightest free:
S2
(w =
2
) → busy until t =
5
, ans[
3
] =
2
t =
4
assigned =
4
/ 6
1
→S2
0
2
→S2
1
3
→S0
2
2
→S2
3
1
4
2
5
S0
3
→ t=5
S1
3
free
S2
2
→ t=5
free (weight, idx):
busy (release t):
S0@5
S1:3
S2@5
ans:
2
2
0
2
check
S1
, lightest free so far
S1
t =
5
assigned =
5
/ 6
1
→S2
0
2
→S2
1
3
→S0
2
2
→S2
3
1
→S1
4
2
5
S0
3
free
S1
3
free
S2
2
free
free (weight, idx):
busy (release t):
S0:3
S1:3
S2:2
ans:
2
2
0
2
1
check
S0
, lightest free so far
S0
t =
5
assigned =
6
/ 6
1
→S2
0
2
→S2
1
3
→S0
2
2
→S2
3
1
→S1
4
2
→S2
5
S0
3
free
S1
3
free
S2
2
→ t=7
free (weight, idx):
busy (release t):
S0:3
S1:3
S2@7
ans:
2
2
0
2
1
2
ans = [2, 2, 0, 2, 1, 2]
algo
master
.
io
Step:
3 servers, 6 tasks, every server free at t = 0
0 / 75
Input
Example 1
Example 2
Simple
Custom
servers
=
[3, 3, 2]
,
tasks
=
[1, 2, 3, 2, 1, 2]
0 / 75
algo
master
.
io
Step:
3 servers, 6 tasks, every server free at t = 0