не для слабонервных

 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
n, x, k = map(int, input().split())#n кол-во тем, x - кол-во задач Гена, k - кол-во студентов
a = []
g = []
cnt = 0
for i in range(0, n):
it = int(input())
a += [it]
g.append([it//x, it])
g.sort(reverse = True)
print(g)
while True:
if g == []:
break
cnt += 1
g[0][1] = g[0][1] - x
g[0][0] = g[0][1] // x
r, t = g[0][0], g[0][1]
g.pop(0)
if t > 0:
for i in range(0, len(g)):
if r >= g[i][0]:
for j in range(i, len(g)):
if r > g[j][0]:
g.insert(j-1, [r, t])
break
if g[j][1] <= t:
g.insert(j - 1, [r, t])
break
else:
g.insert(len(g) - 1, [r, t])
break
if g == []:
break
print(g, "Гена")
g[len(g)-1][1] -= k
g[len(g)-1][0] = g[len(g)-1][1] // x
if g[len(g) - 1][1] < 0:
dif = abs(g[len(g) - 1][1])
g.pop(len(g) - 1)
while True:
print(g, "в цикле")
if g[len(g)-1][1] - dif >= 0:
g[len(g) - 1][1] -= dif
g[len(g) - 1][0] = g[len(g) - 1][1] // x
break
else:
dif -= g[len(g)-1][1]
g.pop(len(g) - 1)
print(g, "после цикла")
r, t = g[len(g)-1][0], g[len(g)-1][1]
g.pop(len(g)-1)
if t > 0:
for i in range(0, len(g)):
if r >= g[i][0]:
#print(g, "что тут пошло не так")
for j in range(i, len(g)):
if r > g[j][0]:
#print("тут?")
g.insert(j-1, [r, t])
break
if g[j][1] <= t:
#print("здесь?")
g.insert(j - 1, [r, t])
break
else:
g.append([r, t])
break
print(g, "queue")
print(cnt, "counter")
print(cnt)