---
tags: Python Advanced
---
# [Призовий святковий турнір](https://kit.dots.org.ua/contests?id=1313)
Для входа на сайт https://kit.dots.org.ua используйте логин и пароль, выданные преподавателем.
:::spoiler Группа PyA 2020
LOGIN|PASSWORD|ФИО
-|-|-
u18368_SDBYL|4AXHPLEP|Афанасенков Артем
u18369_YEWHK|92E6X9H4|Базалей Вадим
u18370_GBXLH|7DEMXZCX|Белевцов Сергей
u18371_HXXNC|K6H32QCF|Бондарь Вячеслав
u18372_WKRTX|PCD9DMT2|Григоращенко Полина
u18373_WGTHA|X2561WPY|Давыденко Глеб
u18374_LTRZU|E9432YXY|Заднепрянский Михаил
u18375_BDNGW|XW37FNM9|Зыбенко Сергей
u18376_TCSGA|EAW3H9PY|Крохмаль Станислав
u18377_NUPDE|1X1MCHFF|Макаров Михаил
u18378_NSBNY|MB53CE9W|Юрченко Кирилл
u18379_MFEHB|NYA1QCH7|Скриниченко Денис
:::
## Шаблон программы
```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=2501)

:::spoiler Решение
```
если i > j:
то вывести ноль
иначе:
вывести длину и сам срез
```

<!--
```python=
s = input()
(i, j) = [int(i) - 1 for i in input().split()]
if i > j:
print(0)
else:
print(j - i + 1)
print(s[i:j+1])
```
-->
:::
## [Задача B: Префиксы](https://kit.dots.org.ua/problems?id=2502)

:::spoiler Решение
```
если i > j:
то вывести один (префикс из пустой строки)
иначе:
вывести количество префиксов
вывести собственные префиксы в цикле
```

<!--
```python=
s = input()
(i, j) = [int(i) - 1 for i in input().split()]
if i > j:
print(1)
else:
print(j - i + 2)
for k in range(j-i):
print(s[i:i+k+1])
```
-->
:::
## [Задача C: Суффиксы](https://kit.dots.org.ua/problems?id=2503)

:::spoiler Решение
```
если i > j:
то вывести один (суфикс из пустой строки)
иначе:
вывести количество суфиксов
вывести собственные суфиксы в цикле
```

<!--
```python=
s = input()
(i, j) = [int(i) - 1 for i in input().split()]
if i > j:
print(1)
else:
print(j - i + 2)
for k in range(j-i, 0, -1):
print(s[j-k+1:j+1])
```
-->
:::
## [Задача D: Образец и текст](https://kit.dots.org.ua/problems?id=2504)

:::spoiler Решение
```
если строка p входит в t с позиции k:
вывести YES и длину p
иначе:
вывести NO
определить количество (совпавших символов p и t) + 1
```

<!--
```python=
p = input()
t = input()
k = int(input()) - 1
if p == t[k : k + len(p)]:
print('YES')
print(len(p))
else:
print('NO')
i = 1
while p[i-1] == t[k + i - 1]:
i += 1
print(i)
```
-->
:::
## [Задача E: Наивный алгоритм (первое вхождение)](https://kit.dots.org.ua/problems?id=2505)

:::spoiler Решение
```
присваиваем k = 0
цикл пока k меньше или равно разности между длиной t и p:
выполнить срез начиная с позиции k длиной p
если срез совпадает с p
вывести p
break
иначе:
каждый символ p:
вывести символ
если символ p не совпадает с символом среза:
break
увеличить k
если k больше разности между длиной t и p:
вывести 0 с новой строки
иначе:
вывести k+1 с новой строки
```

<!--
```python=
p = input()
t = input()
k = 0
while k <= (len(t) - len(p)):
s = t[k : k + len(p)]
if p == s:
print(p, end='')
break
else:
for j in range(len(p)):
print(p[j], end='')
if p[j] != s[j]:
break
k += 1
if k > (len(t) - len(p)):
print('\n0')
else:
print('\n' + str(k+1))
```
-->
:::
## [Задача F: Наивный алгоритм - 2 (первое вхождение)](https://kit.dots.org.ua/problems?id=2506)

:::spoiler Решение
```
присваиваем k = 0
цикл пока k меньше или равно разности между длиной t и p:
выполнить срез начиная с позиции k длиной p
если срез совпадает с p
вывести p справа налево
break
иначе:
каждый символ p справа налево:
вывести символ
если символ p не совпадает с символом среза:
break
увеличить k
если k больше разности между длиной t и p:
вывести 0 с новой строки
иначе:
вывести k+1 с новой строки
```
<!--
```python=
p = input()
t = input()
k = 0
while k <= (len(t) - len(p)):
s = t[k : k + len(p)]
if p == s:
print(p[::-1], end='')
break
else:
for j in range(len(p)-1, -1, -1):
print(p[j], end='')
if p[j] != s[j]:
break
k += 1
if k > (len(t) - len(p)):
print('\n0')
else:
print('\n' + str(k+1))
```
-->
:::
## [Задача G: Наивный алгоритм (все вхождения)](https://kit.dots.org.ua/problems?id=2507)
