59 lines
3.6 KiB
Python
59 lines
3.6 KiB
Python
''' ****** Задание 16 из 20 *********
|
||
* Вы снова работаете над лентой новостей для сайта.
|
||
Теперь заголовки могут занимать несколько строк, но при этом всё равно нужно соблюдать лимит: если заголовок слишком длинный — он должен быть сокращён и завершён многоточием ....
|
||
|
||
Эта задача поможет вам научиться учитывать длину строк, переносы и условия обрезки текста.
|
||
|
||
Напишите программу, которая по заданному количеству строк и максимально допустимой длине:
|
||
|
||
выводит заголовок, при необходимости обрезая его;
|
||
если заголовок слишком длинный — заменяет последние символы на ...;
|
||
если строки заканчиваются слишком коротко, ... может перейти в предыдущую строку.
|
||
Формат ввода
|
||
Вводится натуральное число
|
||
L — необходимая длина заголовка.
|
||
Вводится натуральное число
|
||
N — количество строк в заголовке новости.
|
||
В каждой из последующих
|
||
N строк записано по одной строке заголовка.
|
||
|
||
Формат вывода
|
||
Сокращённый заголовок.
|
||
|
||
Примечание
|
||
Многоточие учитывается при подсчёте длины заголовка.
|
||
Символ перевода строки при подсчёте длины не учитывается.
|
||
|
||
|
||
Подсказка
|
||
Учтите следующие варианты:
|
||
|
||
все строки в сумме по длине меньше чем требуется - выводится все что есть;
|
||
все строки в сумме превышают требуемую длину:
|
||
в последней строки более 3х символов - в последнюю строку вместо 3х последних символов добавляется многоточие;
|
||
в последней строке менее 3х символов - последняя строка удаляется, а многоточие добавляется в предпоследнюю строку.
|
||
Пример 1
|
||
Ввод
|
||
|
||
144
|
||
5
|
||
Энтузиаст написал программу для управления громкостью с помощью жестов, чтоб не вставать с дивана
|
||
Благодаря ей он может регулировать громкость,
|
||
показывая расстояние между большим и указательным пальцами.
|
||
Для этого ему понадобилась веб-камера, знания Python и
|
||
библиотека для работы с компьютерным зрением.
|
||
Вывод
|
||
|
||
Энтузиаст написал программу для управления громкостью с помощью жестов, чтоб не вставать с дивана
|
||
Благодаря ей он может регулировать громкость...
|
||
'''
|
||
|
||
|
||
if __name__ == "__main__":
|
||
length, line = int(input()), []
|
||
for _ in range(int(input())):
|
||
line.append(input())
|
||
for i in line:
|
||
if length > 3:
|
||
print(i[:length - 3] + "..." if len(i) >= length - 3 else (i + "..." if length == 4 else i))
|
||
length -= len(i) |