-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy path16_09_2.py
39 lines (38 loc) · 1.21 KB
/
16_09_2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
n = int(input())
ps = [int(it) for it in input().rstrip().split(' ')]
sets = [set() for i in range(5)]
sets[4] = set([i for i in range(20)])
for p in ps:
enable = False
mini = 100
mini_set = 5
for i in range(p - 1, 5):
if len(sets[i]) != 0:
enable = True
min_in = min(sets[i])
if mini > min_in:
mini = min_in
mini_set = i
if enable:
sets[mini_set].remove(mini)
if mini_set - p >= 0:
sets[mini_set - p].add(mini)
begin = (mini + 1) * 5 - mini_set
end = (mini + 1) * 5 - mini_set + p
print(' '.join([str(it) for it in range(begin, end)]))
else:
adding = []
for i in range(p):
mini = 100
mini_set = 5
for j in range(p):
if len(sets[j]) != 0:
min_in = min(sets[j])
if mini > min_in:
mini = min_in
mini_set = j
sets[mini_set].remove(mini)
if mini_set != 0:
sets[mini_set - 1].add(mini)
adding.append((mini + 1) * 5 - mini_set)
print(' '.join([str(it) for it in adding]))