---
tags: Python
---
# Олимпийский карантин
## A: Совет школы

:::spoiler Решение
```python=
import sys
sys.stdin = open('input.txt', 'r')
sys.stdout = open('output.txt', 'w')
n = int(input())
k = int(input())
x = (n - 3 * k) // 2
if x < 0:
x = 0
if 3 * (k + x) < (n + x):
x += 1
print(x)
```
:::
## B: Подготовка

:::spoiler Решение
```python=
import sys
sys.stdin = open('input.txt', 'r')
sys.stdout = open('output.txt', 'w')
n = int(input())
k = int(input())
d = 1
s = k
while s < n:
k += 1
s += k
d += 1
print(d)
```
:::
## C: Палиндром

:::spoiler Решение
```python=
import sys
sys.stdin = open('input.txt', 'r')
sys.stdout = open('output.txt', 'w')
def is_palindrom(number):
number = str(number)
index = 0
while index < len(number) // 2:
if number[index] != number[-(index + 1)]:
return False
index += 1
return True
def next_palindrom(number):
number = str(number)
center = len(number) // 2 + len(number) % 2
left = number[:center]
right = number[center:]
new_right = left[len(right) - 1::-1]
if int(new_right) < int(right):
left = str(int(left) + 1)
new_right = left[len(right) - 1::-1]
return str(left+new_right)
n = int(input()) + 1
if is_palindrom(n):
print(n)
else:
print(next_palindrom(n))
```
:::
## D: Олимпиада

:::spoiler Решение
```python=
import sys
sys.stdin = open('input.txt', 'r')
sys.stdout = open('output.txt', 'w')
n = int(input())
pupils = {}
for i in range(n):
number = input()
if number in pupils:
pupils[number] += 1
else:
pupils[number] = 1
if max(pupils.values()) > (n // 2 + n % 2):
print(0)
else:
prev_school = None
for i in range(n):
max_count = 0
for number, count in pupils.items():
if number != prev_school and count > max_count:
max_number = number
max_count = count
print(max_number)
pupils[max_number] -= 1
prev_school = max_number
```
:::
## E: Сплав

**Базовые формулы**
$$
\frac{a}{a+b} + \frac{c}{c+d}
$$
$$
\frac{a(c+d) + c(a+b)}{(a+b)(c+d)}=0
$$
$$
\frac{za}{a+b} + \frac{(1000-z)c}{c+d} = \frac{1000x}{x+y}
$$
:::spoiler Решение
```python=
import sys
sys.stdin = open('input.txt', 'r')
sys.stdout = open('output.txt', 'w')
(a, b, c, d, x, y) = tuple(map(int, input().split()))
w = a*(c+d)-c*(a+b)
if w == 0:
print(0)
else:
z = ( 1000*(a+b)*(x*(c+d)/(x+y)-c) ) / w
if (z<0) or (z > 1000):
print(-1)
else:
print(round(z))
```
:::