Skip to content
Snippets Groups Projects
Commit 191b1bd1 authored by hacker717's avatar hacker717
Browse files

Коммит main в маи

parent 6b4210c4
Branches text_processor
No related tags found
No related merge requests found
3.1/3.py 0 → 100644
length, n = int(input()), int(input())
arr = []
for _ in range(n):
arr.append(input())
for s in arr:
if len(s) > length:
print(f"{s[:(length - 3)]}...")
else:
print(s)
\ No newline at end of file
%% Cell type:markdown id: tags:
## **Азбука**
Знакомые нам воспитанники детского сада наконец-то начали учить буквы.<br>Воспитатель предложил ребятам назвать слова, которые начинаются с А, Б или В. Напишите программу, которая проверяет, что первая буква во всех словах — А, Б или В.
### **Формат ввода**
Вводится натуральное число $N$ — количество слов, названных детьми.<br>В каждой из последующих $N$ строк записано по одному слову строчными буквам.
### **Формат вывода**
YES — если все слова начинаются с нужной буквы.<br>NO — если хотя бы одно слово начинается не с нужной буквы.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|3<br>арбуз<br>барабан<br>ворона|YES<br> <br> <br> <br>|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|4<br>аист<br>вареник<br>кузнечик<br>алыча|NO<br> <br> <br> <br> <br>|
%% Cell type:code id: tags:
``` python
f = True
for i in range(int(input())):
s = input().lower()[0]
for sym in "абв":
if sym == s:
f = True
break
else:
f = False
if not f:
break
if f:
print("YES")
else:
print("NO")
```
%% Cell type:markdown id: tags:
## **Кручу-верчу**
Очень часто в текстовых редакторах требуется траспонировать (повернуть) текст.<br>К сожалению, в Python такая функция по-умолчанию отсутствует. Давайте создадим программу, которая преобразует введённую стоку из горизонтальной записи в вертикальную.
### **Формат ввода**
Одна строка.
### **Формат вывода**
Вертикальное представление введённой строки.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|Привет<br> <br> <br> <br> <br> <br><br>р<br>и<br>в<br>е<br>т<br>|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|Питон<br> <br> <br> <br> <br><br>и<br>т<br>о<br>н<br>|
%% Cell type:code id: tags:
``` python
s = input()
for i in s:
print(i)
```
%% Cell type:markdown id: tags:
## **Анонс новости**
Местная новостная компания заказала сайт. Его неотъемлемая часть — новостная лента.<br>Чтобы пользователи могли быстрее анализировать статьи, нужно сократить заголовки. Напишите программу, которая сокращает длинные заголовки до требуемой длины и завершает их многоточием ... при необходимости.
### **Формат ввода**
Вводится натуральное число $L$ — необходимая длина заголовка.<br>Вводится натуральное число $N$ — количество заголовков, которые требуется сократить.<br>В каждой из последующих $N$ строк записано по одному заголовку.
### **Формат вывода**
Сокращённые заголовки.
### **Примечание**
Многоточие учитывается при подсчёте длины заголовка.
### **Пример**
|Ввод |Вывод|
|-----|-----|
|25<br>3<br>Начался саммит по глобальному потеплению<br>Завтра Новый год!<br>Python и Java конкурируют за звание самого популярного языка программирования|Начался саммит по глоб...<br>Завтра Новый год!<br>Python и Java конкурир...<br> <br> <br>|
%% Cell type:code id: tags:
``` python
length, n = int(input()), int(input())
arr = []
for _ in range(n):
arr.append(input())
for s in arr:
if len(s) > length:
print(f"{s[:(length - 3)]}...")
else:
print(s)
```
%% Cell type:markdown id: tags:
## **Очистка данных**
Местный провайдер собирает большое количество логов, однако зачастую файлы с отчётами приходят в негодность.<br>Самые частые проблемы — ошибки вида ## и @@@.<br>Напишите программу, которая избавляется от:<br>
* Двух символов # в начале информационных сообщений;
* Строк, заканчивающихся тремя символами @.
### **Формат ввода**
Вводятся строки отчёта. Признаком завершения ввода считается пустая строка.
### **Формат вывода**
Очищенные данные.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|Hello, world<br>Hello, @@@<br>##Goodbye<br>|Hello, world<br>Goodbye<br> <br>|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|First Message<br>##Second Message<br>@@@Third Message##<br>##Fourth Message@@@<br>|First Message<br>Second Message<br>@@@Third Message##<br> <br>|
%% Cell type:code id: tags:
``` python
arr = []
s = input()
while s:
arr.append(s)
s = input()
for s in arr:
if s[-3:] == "@@@":
continue
elif s[:2] == "##":
print(s[2:])
else:
print(s)
```
%% Cell type:markdown id: tags:
## **А роза упала на лапу Азора 4.0**
Вернёмся к палиндромам — числам, словам и предложениям, которые читаются одинаково в оба направления.<br>Напишите программу, которая определяет, относится ли введённая строка к палиндромам.
### **Формат ввода**
Вводится строка.
### **Формат вывода**
Требуется вывести YES — если введенная строка является палиндромом, иначе – NO.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|мама|NO|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|анна|YES|
%% Cell type:code id: tags:
``` python
s = input()
if s == s[::-1]:
print("YES")
else:
print("NO")
```
%% Cell type:markdown id: tags:
## **Зайка — 6**
Очередное путешествие родителей с детьми, очередная игра с поиском зверушек за окном.<br>Давайте поиграем и найдём заек.
### **Формат ввода**
В первой строке записано натуральное число $N$ — количество выделенных придорожных местностей.<br>В каждой из $N$ последующих строк записано описание придорожной местности.
### **Формат вывода**
Количество заек.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|3<br>березка елочка зайка волк березка<br>сосна зайка сосна елочка зайка медведь<br>сосна сосна сосна белочка сосна белочка|3<br> <br> <br> <br>|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|4<br>зайка березка<br>березка зайка<br>березка елочка березка<br>елочка елочка елочка|2<br> <br> <br> <br> <br>|
%% Cell type:code id: tags:
``` python
arr = []
for _ in range(int(input())):
arr += input().split()
c = 0
for s in arr:
if s == "зайка":
c += 1
print(c)
```
%% Cell type:markdown id: tags:
## **А и Б сидели на трубе**
Сложение чисел весьма простая задача.<br>К сожалению, пользователи не всегда вводят данные так, как нам удобно.
### **Формат ввода**
Два целых числа, разделённые пробелом.
### **Формат вывода**
Одно целое число — сумма переданных чисел.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|2 2|4|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|-3 5|2|
%% Cell type:code id: tags:
``` python
a, b = [int(i) for i in input().split()]
print(a + b)
```
%% Cell type:markdown id: tags:
## **Зайка — 7**
Вновь поищем заек за окном поезда.
### **Формат ввода**
В первой строке записано натуральное число $N$ — количество выделенных придорожных местностей.<br>В каждой из $N$ последующих строк записано описание придорожной местности.
### **Формат вывода**
Для каждой строки нужно найти положение первого зайки.<br>Если в строке нет заек, то об этом нужно непременно сообщить.
### **Примечание**
Для символов в строках используйте нумерацию с 1.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|3<br>березка елочка зайка волк березка<br>сосна зайка сосна елочка зайка медведь<br>сосна сосна сосна белочка сосна белочка<br>|16<br>7<br>Заек нет =(<br> <br>|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|4<br>зайка березка<br>березка зайка<br>березка елочка березка<br>елочка елочка елочка<br>|1<br>9<br>Заек нет =(<br>Заек нет =(<br> <br>|
%% Cell type:code id: tags:
``` python
arr = []
for _ in range(int(input())):
arr.append(input())
c = 0
for elem in arr:
pos = 0
for i in range(len(elem) - 4):
if elem[i: i + 5] == "зайка":
pos = i + 1
break
if pos:
print(pos)
else:
print("Заек нет =(")
```
%% Cell type:markdown id: tags:
## **Без комментариев**
Мы надеемся, вы пишите комментарии к своему коду. Если так, то интерпретатор удаляет их перед тем, как выполнить код. Напишите программу, которая выполняет данную функцию за интерпретатор.
### **Формат ввода**
Вводятся строки программы.<br>Признаком остановки является пустая строка.
### **Формат вывода**
Каждую строку нужно очистить от комментариев.<br>А если комментарий — вся строка, то выводить её не надо.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|# Моя первая супер-пупер программа<br>print("What is your name?") # Как тебя зовут?<br>name = input() # Сохраняем имя<br>print(f"Hello, {name}!") # Здороваемся# Конец моей супер-пупер программы<br>|print("What is your name?")<br>name = input()<br>print(f"Hello, {name}!")<br> <br>|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|# Мой первый цикл<br>for i in range(10): # Считаем до 10<br> print(i) # выводим число<br>|for i in range(10):<br> print(i)<br> <br>|
%% Cell type:code id: tags:
``` python
s = input()
arr = []
while s:
arr.append(s)
s = input()
for s in arr:
res = ""
for i in range(len(s)):
res = s
if s[i] == "#":
res = s[:i]
break
if res:
print(res)
```
%% Cell type:markdown id: tags:
## **Частотный анализ на минималках**
Частотный анализ — подсчёт, какие символы чаще всего встречаются в тексте. Это важнейший инструмент взлома многих классических шифров — от шифра Цезаря и до шифровальной машины «Энигма». Выполним простой частотный анализ: выясним, какой символ встречается в тексте чаще всего.
### **Формат ввода**
Вводятся строки, пока не будет введена строка «ФИНИШ».
### **Формат вывода**
Выводится один символ в нижнем регистре — наиболее часто встречающийся.<br><br>Примечания<br>Пробелы в анализе не участвуют.<br>Если в результате анализа получено несколько ответов, следует вывести первый по алфавиту.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|Баобаб<br>Белка<br>Бобы<br>ФИНИШ|б<br> <br> <br> <br>|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|Финики Фокачча Зайка<br>Филин Фосфор Светофор<br>Фехтовальщик Форма<br>ФИНИШ|ф<br> <br> <br> <br>|
%% Cell type:code id: tags:
``` python
string = ""
s = input()
while s != "ФИНИШ":
string += s
s = input()
string = string.lower().replace(" ", "")
d = {}
for i in string:
if i in d:
d[i] += 1
else:
d[i] = 1
maxl, s = 0, "я"
for i in d.keys():
if d[i] > maxl:
maxl = d[i]
s = i
elif d[i] == maxl:
if ord(i) < ord(s):
s = i
print(s)
```
%% Cell type:markdown id: tags:
## **Найдётся всё**
Поиск информации — одна из основных нужд в современном мире.<br>Создайте программу, которая реализует маленький компонент поисковой системы.
### **Формат ввода**
Вводится натуральное число $N$ — количество страниц, среди которых требуется произвести поиск.<br>В каждой из последующих $N$ строк записаны заголовки страниц.<br>В последней строке записан поисковый запрос.
### **Формат вывода**
Вывести все заголовки страниц, в которых присутствует поисковый запрос (регистр не имеет значения).<br>Порядок заголовков должен сохраниться.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|3<br>Яндекс выпустил задачник по программированию<br>На соревнованиях по программированию победил любитель питона<br>Как заказать Яндекс.Такси?!<br>яндекс<br>|Яндекс выпустил задачник по программированию<br>Как заказать Яндекс.Такси?!<br> <br> <br> <br>|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|8<br>сериал шерлок смотреть онлайн<br>учебник питона<br>мемы<br>социальная сеть<br>упражнения по питону<br>кормовые мыши для питонов<br>ответы егэ скачать бесплатно<br>компьютерные мыши<br>питон<br>|учебник питона<br>упражнения по питону<br>кормовые мыши для питонов<br> <br> <br> <br> <br> <br> <br> <br>|
%% Cell type:code id: tags:
``` python
arr = [input() for _ in range(int(input()))]
research = input()
for s in arr:
if research.lower() in s.lower():
print(s)
```
%% Cell type:markdown id: tags:
## **Меню питания**
В детском саду ежедневно подают новую кашу на завтрак.<br>Каши чередуются в следующем порядке:<br>
* Манная;
* Гречневая;
* Пшённая;
* Овсяная;
* Рисовая.
Напишите программу, которая строит расписание каш на ближайшие дни.
### **Формат ввода**
Вводится натуральное число $N$ — количество дней.
### **Формат вывода**
Вывести список каш в порядке подачи.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|3<br> <br> <br>|Манная<br>Гречневая<br>Пшённая<br>|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|12<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>|Манная<br>Гречневая<br>Пшённая<br>Овсяная<br>Рисовая<br>Манная<br>Гречневая<br>Пшённая<br>Овсяная<br>Рисовая<br>Манная<br>Гречневая<br>|
%% Cell type:code id: tags:
``` python
arr = ["Манная", "Гречневая", "Пшённая", "Овсяная", "Рисовая"]
n = int(input())
for i in range(n):
print(arr[i % 5])
```
%% Cell type:markdown id: tags:
## **Массовое возведение в степень**
Часто возникают трудности, когда нужно выполнить множество однообразных операций. В таких случаях люди желают упростить себе работу. Напишите программу, которая возводит в заданную степень все числа, что передали пользователи.
### **Формат ввода**
Вводится натуральное число $N$ — количество чисел.<br>В каждой из последующих $N$ строк записано по одному числу.<br>В последней строке записано натуральное число $P$ — степень, в которую требуется возвести числа.
### **Формат вывода**
Последовательность чисел, являющихся ответом.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|3<br>2<br>3<br>4<br>3<br>|8<br>27<br>64<br> <br> <br>|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|5<br>222222<br>22222<br>2222<br>222<br>22<br>2<br>|49382617284<br>493817284<br>4937284<br>49284<br>484<br> <br> <br>|
%% Cell type:code id: tags:
``` python
arr = [int(input()) for _ in range(int(input()))]
p = int(input())
for i in arr:
print(i**p)
```
%% Cell type:markdown id: tags:
## **Массовое возведение в степень 2.0**
Продолжим упрощать себе работу, минуя множество одинаковых операций.<br>Создадим новую программу, которая возводит в заданную степень все числа, переданные пользователем.
### **Формат ввода**
В первой строке записана последовательность натуральных чисел, разделённых пробелами.<br>Во второй строке записано натуральное число $P$ — степень, в которую требуется возвести числа.
### **Формат вывода**
Последовательность чисел, являющихся ответом.<br>Числа вывести в одну строку через пробел.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|2 3 4<br>3|8 27 64<br> <br>|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|222222 22222 2222 222 22<br>2|49382617284 493817284 4937284 49284 484<br> <br>|
%% Cell type:code id: tags:
``` python
arr = [int(i) for i in input().split()]
p = int(input())
for i in arr:
print(i ** p, end=" ")
```
%% Cell type:markdown id: tags:
## **НОД 3.0**
Местному НИИ в очередной раз нужно находить наибольший общий делитель (НОД) нескольких чисел.<br>Руководство института вернулось с этой задачей к нам.
### **Формат ввода**
В единственной строке записывается последовательность натуральных чисел, разделённых пробелами.
### **Формат вывода**
Требуется вывести одно натуральное число — НОД всех данных чисел.
### **Примечание**
Самый распространенный способ поиска НОД — Алгоритм Эвклида.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|12 42|6|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|102 39 768|3|
%% Cell type:code id: tags:
``` python
arr = [int(i) for i in input().split()]
nod = 0
for i in range(len(arr) - 1):
a, b = arr[i], arr[i + 1]
while a != b:
if a > b:
a -= b
else:
b -= a
arr[i + 1] = a
print(arr[-1])
```
%% Cell type:markdown id: tags:
## **Анонс новости 2.0**
Попробуем ещё раз сократить заголовки для статей в ленте новостного сайта. Давайте сделаем программу, которая сокращает длинный заголовок до требуемой длины и завершает его многоточием ..., если это требуется.
### **Формат ввода**
Вводится натуральное число $L$ — необходимая длина заголовка.<br>Вводится натуральное число $N$ — количество строк в заголовке новости.<br>В каждой из последующих $N$ строк записано по одной строке заголовка.
### **Формат вывода**
Сокращённый заголовок.
### **Примечание**
Многоточие учитывается при подсчёте длины заголовка.<br>Символ перевода строки при подсчёте длины не учитывается.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|144<br>5<br>Энтузиаст написал программу для управления громкостью с помощью жестов, чтоб не вставать с дивана<br>Благодаря ей он может регулировать громкость,<br>показывая расстояние между большим и указательным пальцами.<br>Для этого ему понадобилась веб-камера, знания Python и<br>библиотека для работы с компьютерным зрением.|Энтузиаст написал программу для управления громкостью с помощью жестов, чтоб не вставать с дивана<br>Благодаря ей он может регулировать громкость...<br> <br> <br> <br> <br> <br>|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|121<br>5<br>Энтузиаст написал программу для управления громкостью с помощью жестов, чтоб не вставать с дивана<br>Благодаря ей он может регулировать громкость,<br>показывая расстояние между большим и указательным пальцами.<br>Для этого ему понадобилась веб-камера, знания Python и<br>библиотека для работы с компьютерным зрением.|Энтузиаст написал программу для управления громкостью с помощью жестов, чтоб не вставать с дивана<br>Благодаря ей он может...<br> <br> <br> <br> <br> <br>|
%% Cell type:code id: tags:
``` python
length = int(input()) - 3
arr = [input() for _ in range(int(input()))]
for elem in arr:
if len(elem) < length:
print(elem)
length -= len(elem)
elif len(elem) == length:
print(f"{elem}...")
break
else:
print(f"{elem[:length]}...")
break
```
%% Cell type:markdown id: tags:
## **А роза упала на лапу Азора 5.0**
И снова напишем программу, которая определяет, палиндромом перед нами или нет.
### **Формат ввода**
Вводится строка.
### **Формат вывода**
Если введённая строка относится к палиндрому, то вывести YES, а иначе — NO.
### **Примечание**
При проверке не обращайте внимания на регистр и пробелы.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|А роза упала на лапу Азора|YES|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|Мама мыла раму|NO|
%% Cell type:code id: tags:
``` python
s = input().lower().replace(" ", "")
if s == s[::-1]:
print("YES")
else:
print("NO")
```
%% Cell type:markdown id: tags:
## **RLE**
RLE означает “run-length encoding”. Это способ сокращённой записи последовательности чего угодно (в случае этой задачи — цифр). При нём для подряд идущей группы одинаковых цифр (run) записываются сама эта цифра и длина этой группы (run length). Таким образом, 99999 превратится в 9 5 («девять пять раз») и так далее. RLE широко используется в самых разных областях. Напишите программу, которая кодирует строку цифр в RLE.
### **Формат ввода**
Строка цифр длиной не меньше 1.
### **Формат вывода**
Пары: сама цифра и количество повторений цифры подряд во введённой строке, как описано в условии и показано в примере.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|010000100001111111110111110000000000000011111111<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>|0 1<br>1 1<br>0 4<br>1 1<br>0 4<br>1 9<br>0 1<br>1 5<br>0 14<br>1 8<br>|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|0110000000100001000<br> <br> <br> <br> <br> <br> <br>|0 1<br>1 2<br>0 7<br>1 1<br>0 4<br>1 1<br>0 3<br>|
%% Cell type:code id: tags:
``` python
s = input()
sym = s[0]
c = 1
for i in s[1:]:
if sym == i:
c += 1
else:
print(sym, c)
sym = i
c = 1
print(sym, c)
```
%% Cell type:markdown id: tags:
## **Польский калькулятор**
Напишите программу, которая производит вычисление выражения, записанного в обратной польской нотации (ОПН).<br><br>В ОПН нет ни скобок, ни приоритета операторов («умножение раньше сложения»).<br><br>Чтобы прочитать выражение, записанное в таком формате, нужно просматривать выражение строго последовательно. Вводимые значения последовательно добавляются в стек. Когда встречается символ операции, то из стека извлекаются последние положенные туда значения, с ними проделывается эта операция и результат возвращается в стек.<br><br>Если для операции важен порядок значений, с которыми она производится, то первым идёт число, лежавшее в стеке глубже. В частности, если операция — вычитание, то из предпоследнего числа в стеке вычитается последнее, а не наоборот.<br><br>Изначально стек пустой, в результате полного вычисления выражения в нём должно остаться одно значение — результат вычислений.<br><br>Первый пример следует читать так: в стек последовательно добавляются значения 7 2 3, а затем встречаем знак операции *. Тогда значения 2 и 3 извлекаются, перемножаются, результат 6 кладётся обратно в стек. Следующий знак извлекает из стека два оставшихся в нём значения 7 и 6, вычитает одно из другого и кладёт результат снова в стек. Выражение закончилось, в стеке одно число — 1, это и есть результат вычисления.
### **Формат ввода**
Вводится одна строка, содержащая разделённые пробелами целые числа и знаки операций +, -, *, которые вместе составляют корректное выражение в обратной польской нотации.
### **Формат вывода**
Выводится одно целое число — результат вычисления выражения.
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|7 2 3 * -|1|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|10 15 - 7 *|-35|
%% Cell type:code id: tags:
``` python
arr = input().split()
stek = []
for elem in arr:
if elem in "*-+":
res = eval(f"{stek.pop(-2)} {elem} {stek.pop(-1)}")
stek.append(res)
else:
stek.append(int(elem))
print(stek[0])
```
%% Cell type:markdown id: tags:
## **Польский калькулятор — 2**
Потренируемся в ОПН дальше. Операции, которые выполняются с одним значением, называются унарными, с двумя — бинарными, с тремя — тернарными. Давайте улучшим наш калькулятор, добавив поддержку следующих операций:<br>
* бинарные:<br>- (вычитание),<br>* (умножение),<br>/ (деление нацело; для отрицательных чисел работает по тем же правилам, что и в Python);
* унарные:<br>! (факториал),<br># (клонирование — вернуть в стек значение дважды);
* тернарные:<br>@ (возвращает в стек те же три значения, но в ином порядке: второе, третье, первое).
### **Формат ввода**
Вводится одна строка, содержащая разделённые пробелами целые числа и знаки операций. Вместе они составляют корректное выражение в обратной польской нотации, не содержащее деления на ноль и взятия факториала от отрицательного числа.
### **Формат вывода**
Выводится одно целое число — результат вычисления выражения.
### **Примечание**
В первом примере стек по мере прочтения строки выглядит так:
* 7 1
* 7 1 10
* 7 1 10 100
* 7 1 10 100 100
* 7 1 10 10000
* 7 10 10000 1
* 7 10 9999
* 7 10009
* 10016
* -10016
### **Пример 1**
|Ввод |Вывод|
|-----|-----|
|7 1 10 100 # * @ - + + ~|-10016|
### **Пример 2**
|Ввод |Вывод|
|-----|-----|
|10 15 - 7 *|-35|
%% Cell type:code id: tags:
``` python
arr = input().split()
stek = []
for elem in arr:
if elem in "*-+":
res = eval(f"{stek.pop(-2)} {elem} {stek.pop(-1)}")
stek.append(res)
elif elem == "/":
res = eval(f"{stek.pop(-2)} // {stek.pop(-1)}")
stek.append(res)
elif elem == "~":
res = stek.pop(-1) * (-1)
stek.append(res)
elif elem == "#":
stek.append(stek[-1])
elif elem == "!":
res = stek.pop(-1)
prod = 1
while res:
prod *= res
res -= 1
stek.append(prod)
elif elem == "@":
a, b, c = stek.pop(-3), stek.pop(-2), stek.pop(-1)
stek += [b, c, a]
else:
stek.append(int(elem))
print(stek[0])
```
3.1/4.py 0 → 100644
arr = []
s = input()
while s:
arr.append(s)
s = input()
for s in arr:
if s[-3:] == "@@@":
continue
elif s[:2] == "##":
print(s[2:])
else:
print(s)
\ No newline at end of file
s = input()
if s == s[::-1]:
print("YES")
else:
print("NO")
\ No newline at end of file
3.1/6.py 0 → 100644
arr = []
for _ in range(int(input())):
arr += input().split()
c = 0
for s in arr:
if s == "зайка":
c += 1
print(c)
\ No newline at end of file
a, b = [int(i) for i in input().split()]
print(a + b)
\ No newline at end of file
3.1/8.py 0 → 100644
arr = []
for _ in range(int(input())):
arr.append(input())
c = 0
for elem in arr:
pos = 0
for i in range(len(elem) - 4):
if elem[i: i + 5] == "зайка":
pos = i + 1
break
if pos:
print(pos)
else:
print("Заек нет =(")
\ No newline at end of file
3.1/9.py 0 → 100644
s = input()
arr = []
while s:
arr.append(s)
s = input()
for s in arr:
res = ""
for i in range(len(s)):
res = s
if s[i] == "#":
res = s[:i]
break
if res:
print(res)
\ No newline at end of file
s = set(input())
print(*s, sep="")
\ No newline at end of file
d = {
'А': 'A',
'а': 'a',
'Б': 'B',
'б': 'b',
'В': 'V',
'в': 'v',
'Г': 'G',
'г': 'g',
'Д': 'D',
'д': 'd',
'Е': 'E',
'е': 'e',
'Ё': 'E',
'ё': 'e',
'Ж': 'Zh',
'ж': 'zh',
'З': 'Z',
'з': 'z',
'И': 'I',
'и': 'i',
'Й': 'I',
'й': 'i',
'К': 'K',
'к': 'k',
'Л': 'L',
'л': 'l',
'М': 'M',
'м': 'm',
'Н': 'N',
'н': 'n',
'О': 'O',
'о': 'o',
'П': 'P',
'п': 'p',
'Р': 'R',
'р': 'r',
'С': 'S',
'с': 's',
'Т': 'T',
'т': 't',
'У': 'U',
'у': 'u',
'Ф': 'F',
'ф': 'f',
'Х': 'Kh',
'х': 'kh',
'Ц': 'Tc',
'ц': 'tc',
'Ч': 'Ch',
'ч': 'ch',
'Ш': 'Sh',
'ш': 'sh',
'Щ': 'Shch',
'щ': 'shch',
'Ы': 'Y',
'ы': 'y',
'Э': 'E',
'э': 'e',
'Ю': 'Iu',
'ю': 'iu',
'Я': 'Ia',
'я': 'ia'
}
s = input()
new_s = ""
for i in s:
if i in d.keys():
new_s += d[i]
elif i.lower() in ["ь", "ъ"]:
continue
else:
new_s += i
print(new_s)
\ No newline at end of file
d = {}
for _ in range(int(input())):
f = input()
d[f] = 1 + d.get(f, 0)
c = 0
for f in d.keys():
if d[f] - 1:
c += d[f]
print(c)
\ No newline at end of file
d = {}
for _ in range(int(input())):
f = input()
d[f] = 1 + d.get(f, 0)
c = 0
for f in sorted(d.keys()):
if d[f] - 1:
print(f, "-", d[f])
c += 1
if not c:
print("Однофамильцев нет")
\ No newline at end of file
s = {input() for _ in range(int(input()))}
for _ in range(int(input())):
for _ in range(int(input())):
f = input()
if f in s:
s.remove(f)
if s:
print(*sorted(list(s)), sep="\n")
else:
print("Готовить нечего")
\ No newline at end of file
n = int(input())
food_set = set()
for _ in range(n):
food_set.add(input())
res = []
d = {}
m = int(input())
for i in range(m):
dish = input()
d[dish] = set()
for j in range(int(input())):
d[dish] = d[dish] | ({input()})
for i in d.keys():
if d[i] | food_set == food_set:
res.append(i)
if res:
print(*sorted(res), sep="\n")
else:
print("Готовить нечего")
\ No newline at end of file
digits = [int(i) for i in input().split()]
dig_dicts = []
for dig in digits:
b = bin(dig)[2:]
dig_dicts.append({"digits": len(b), "units": b.count("1"), "zeros": b.count("0")})
print(dig_dicts)
s = input()
res = set()
while s:
arr = s.split()
for i in range(len(arr)):
if "зайка" == arr[i]:
if i > 0:
res.add(arr[i - 1])
if i < len(arr) - 1:
res.add(arr[i + 1])
s = input()
print(*list(res), sep="\n")
\ No newline at end of file
s = input().split()
people = set()
connects = {}
while s:
people.add(s[0])
people.add(s[1])
connects[s[0]] = connects.get(s[0], []) + [s[1]]
connects[s[1]] = connects.get(s[1], []) + [s[0]]
s = input().split()
for pers in sorted(list(people)):
con = [[pers, second] for second in connects[pers]]
con_new = []
for elem in con:
if elem[-1] in connects.keys():
for friend in connects[elem[-1]]:
if friend != pers and friend not in connects[elem[0]]:
con_new.append(elem + [friend])
con = con_new
print(f"{pers}:", end=" ")
res = set()
for elem in con:
res.add(elem[-1])
print(*sorted(list(res)), sep=", ")
\ No newline at end of file
coords = set()
connects = {}
for _ in range(int(input())):
new_coord = tuple(input().split())
coords.add(new_coord)
for coord in coords:
for new_coord in coords:
if new_coord[0][:-1] == coord[0][:-1] and new_coord[1][:-1] == coord[1][:-1]:
connects[coord] = connects.get(coord, 0) + 1
print(max(connects.values()))
\ No newline at end of file
arr = []
for _ in range(int(input())):
toys = input().split(", ")
toys = toys[0].split(": ") + toys[1:]
arr.append(set(toys[1:]))
res = []
for i in range(len(arr)):
temp = set()
for elem in arr[:i] + arr[i + 1:]:
temp = temp | elem
res += list(arr[i] - temp)
print(*sorted(res), sep="\n")
\ No newline at end of file
s = set(input()) & set(input())
print(*s, sep="")
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment