---
# System prepended metadata

title: '[Святковий турнір](https://kit.dots.org.ua/contests?id=2056)'
tags: [Python]

---

---
tags: Python
---

# [Святковий турнір](https://kit.dots.org.ua/contests?id=2056)

Для входа на сайт https://kit.dots.org.ua используйте логин и пароль, выданные преподавателем.

:::spoiler Группа Py-36 2020
LOGIN|PASSWORD|ФИО 
-|-|-
u18297_RMTDL|M6ZZHTC9|Аушев Михаил
u18298_PKKST|EF3Z13CN|Богомоленко Максим
u18299_ENZZH|XAYA78X5|Гордиенко Светлана
u18300_LPEEA|XQH2484N|Колесников Даниил
u18301_MNFUR|P53QEK5Z|Колесниченко Артем
u18302_WEZNF|DWHB2EYM|Клушин Максим
u18303_RNGSH|7126ETA3|Мазикин Богдан
u18304_KZFKH|7LKYHDPA|Меренец Илья
u18305_HYMKG|Z864AKWK|Молчанов Даниил
u18306_ERCEP|C736LB44|Рева Антон
u18307_ZUNLP|WHNF1AQ3|Сафонов Сергей
u18308_YKSMK|H4AW37P3|Требушков Максим
u18309_SULAT|NHBB6FWA|Халин Владислав
:::

## Шаблон программы

```python=
import sys
sys.stdin = open('input.txt', 'r')
sys.stdout = open('output.txt', 'w')
# Ввод, если два числа и более в одну строку
(a, b) = [int(s) for s in input().split()]
# Решение задачи
```

## [Задача A: Ялинкові іграшки](https://kit.dots.org.ua/problems?id=1733)

![](https://i.imgur.com/p2J7fbr.png)

:::spoiler Решение
```
определяем количество коробок для шариков (делим нацело на 3)
если есть остаток, 
  то еще + 1 коробка
определяем количество коробок для сосулек (делим нацело на 4)
если есть остаток, 
  то еще + 1 коробка
выводим общую сумму
```
<!--
![](https://i.imgur.com/YAHv6gp.png)
``` python=
(M, N) = [int(s) for s in input().split()]
MBox = M // 3
if M % 3 > 0:
    MBox += 1
NBox = N // 4
if N % 4 > 0:
    NBox += 1
print(MBox+NBox)
```
-->
:::

## [Задача B: Атракціони](https://kit.dots.org.ua/problems?id=1734)

![](https://i.imgur.com/FWiH5CL.png)

:::spoiler Решение
```
предположим ответ будет 60
посчитаем если платим за каждый атракцион
если меньше чем ответ
  то берем новый ответ
посчитаем если абонемент только на горки
если меньше чем ответ
  то берем новый ответ
посчитаем если абонемент только на колесо
если меньше чем ответ
  то берем новый ответ
```
<!--
![](https://i.imgur.com/XXbRhWF.png)
``` python=
(M, N) = [int(s) for s in input().split()]
S = 60
S1 = 3*M + 2*N
if S1 < S:
    S = S1
S1 = 40 + 2*N
if S1 < S:
    S = S1
S1 = 3*M + 30
if S1 < S:
    S = S1
print(S)
```
-->
:::

## [Задача C: Совет школы](https://kit.dots.org.ua/problems?id=1739)

![](https://i.imgur.com/1QtcMX0.png)

:::spoiler Решение
```
считаем, сколько еще нужно добавить родителей
если получилось отрицательное
    то ответ 0
если родители не стоставляют треть от нового количества
    то увеличиваем ответ на 1
```
<!--
![](https://i.imgur.com/gChPebJ.png)
``` python=
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)
```
-->
:::

## [Задача D: Маша и Саша делят на 37](https://kit.dots.org.ua/problems?id=1707)

![](https://i.imgur.com/mkpOUk8.png)

:::spoiler Решение
```
умножить исходное число на 100
если делится на 37 с остатком
    то добавить такое число, чтоб делилось нацело
```
<!--
![](https://i.imgur.com/f5qN5Un.png)
``` python=
A = int(input()) * 100
if A % 37 != 0:
    A += 37 - (A % 37)
print(A) 
```
-->
:::

## [Задача E: Движение с ускорением](https://kit.dots.org.ua/problems?id=1713)

![](https://i.imgur.com/RgRlQMo.png)

:::spoiler Решение
```
предположим, чтобы максимальная скорость в момент времени 0
найдем скорость через время t1
если новая скорость больше максимальной
    то запомним ее
найдем скорость через время t2
если новая скорость больше максимальной
    то запомним ее
```
<!--
![](https://i.imgur.com/7aXMOvI.png)
``` python=
(v0, t1, a1, t2, a2) = [int(s) for s in input().split()]
v_max = v0
v = v0 + a1 * t1
if v > v_max:
    v_max = v
v = v + a2 * t2
if v > v_max:
    v_max = v
print(v_max)
```
-->
:::

## [Задача F: Путешествие на Фобос](https://kit.dots.org.ua/problems?id=1702)

![](https://i.imgur.com/O7RWogC.png)

:::spoiler Решение
```
зададим очень большое число для минимального расхода
для каждого значения больших кораблей от максимально возможного до 0:
    определяем сколько осталось пассажиров 
    если больше нуля:
        то считаем сколько нужно малых кораблей
    иначе:
        малых нужно 0
    считаем общий расход топлива
    если он меньше минимального:
        обновляем значение минимального
        запоминаем количество кораблей
выводим количество кораблей для минимального расхода 
```
<!--
![](https://i.imgur.com/QHUBfxq.png)
``` python=
import math
(N, A, B) = [int(s) for s in input().split()]
min_fuel = 100000000000000000000000000000000
for big in range(math.ceil(N / 50), -1, -1):
    N1 = N - big * 50
    if N1 > 0:
        small = math.ceil((N - (big * 50)) / 4)
    else:
        small = 0
    fuel = big * A + small * B
    if fuel < min_fuel:
        min_fuel = fuel
        ans_big = big
        ans_small = small
print(ans_big, ans_small) 
```
-->
:::

## [Задача G: Марсик и конфеты](https://kit.dots.org.ua/problems?id=1705)

![](https://i.imgur.com/MDt2iJO.png)

:::spoiler Решение
```
находим количество полных туров (левая-средняя-правая-средняя вазы)
    наименьшее между A, B//2, C
находим количество конфет = туры * 4
если остались кофеты в вазе А:
    то увеливаем количество конфет на 1
    если остались конфеты в вазе B:
        то увеливаем количество конфет на 1
        если остались конфеты в вазе C:
            то увеливаем количество конфет на 1
```
<!--
![](https://i.imgur.com/rT46lTq.png)
``` python=
A = int(input())
B = int(input())
C = int(input())
if A < C:
    rounds = A
else:
    rounds = C
if (B // 2) < rounds:
    rounds = B // 2
candies = rounds * 4
if A - rounds > 0:
    candies += 1
    if B - rounds * 2 > 0:
        candies += 1
        if C - rounds > 0:
            candies += 1
print(candies) 
```
-->
:::

## [Задача H: Розы](https://kit.dots.org.ua/problems?id=1758)

![](https://i.imgur.com/i5otKE8.png)

:::spoiler Решение
```
если денег меньше, чем стоимость одной розы A:
    то выводим ноль
иначе:
    считаем сколько по максимум сможем купить роз А
    и сколько это стоит
    если остаток денег позволяет заменить часть роз А розами В:
        то определяем сколько можем заменить
        пересчитываем сумму букета
    выводим стоимость букета
```
<!--
![](https://i.imgur.com/DSTP058.png)
``` python=
a, b, c = [int(s) for s in input().split()]
if c < a:
    print(0)
else:
    kol_a = c // a
    sum = kol_a * a
    if (c - sum) >= (b-a):
        ba = min((c - sum) // (b-a), kol_a)
        sum += ba * (b-a)
    print(sum)
```
-->
:::

## [Задача I: Маша и логистика](https://kit.dots.org.ua/problems?id=1709)

![](https://i.imgur.com/qVNBVOo.png)

:::spoiler Решение
<!--
``` python=
if
```
-->
:::

## [Задача J: Маша и Саша делят на 3](https://kit.dots.org.ua/problems?id=1708)

![](https://i.imgur.com/yYD2yv3.png)

:::spoiler Решение
<!--
``` python=
if for
```
-->
:::

## [Задача K: Ноутбуки](https://kit.dots.org.ua/problems?id=1759)

![](https://i.imgur.com/3C9RxTR.png)

:::spoiler Решение
<!--
![](https://i.imgur.com/06Oe9Jb.png)
``` python=
N, K, A, B = [int(s) for s in input().split()]
max = 0
for N1 in range(A // (N * B) + 1):
    count = N1 * (N + 1)
    A1 = A - (N1 * N * B)
    K1 = A1 // ((K - 1) * B)
    count += K1 * K
    A1 = A1 % ((K- 1) * B)
    if A1 >= B:
        count += A1 // B
    if count > max:
        max = count
print(max)
```
-->
:::
