Окошко для сообщения на сайте техподдержки имеет ширину a, то есть в одной строке помещается не более a символов (не считая символа перевода строки, то есть разместить строку длины a+1, в которой последний символ — перевод строки, возможно).
Также для того, чтобы сообщение было принято, оно должно быть корректно отформатировано, а именно:
Формат ввода:
В первой строке задано целое число aa — ширина окошка (1≤a≤100). Во второй строке задано целое число b — максимальное количество слов в строке (1≤b≤60). Далее следует набранный текст — не более 1000 слов, состоящих из строчных латинских букв, по одному слову в строке. Гарантируется, что длина слова не превосходит aa. Конец ввода заканчивается словом “0” (единичный ноль), которое не включается в сообщение.
Формат вывода:
Выведите отформатированное сообщение. Учтите, что в этой задаче сравнение ответа с правильным производится побайтово (то есть с учётом пробелов и переводов строк).
Пример:
Ввод:
10
2
contora
is
doing
well
0
Вывод:
contora is
doing well
Мое решение:
Вылетает с ошибкой Wrong answer. Уже несколько часов не могу понять, что не так, если может кто подсказать, что реализовано не так или что я не заметил буду благодарен.
Также для того, чтобы сообщение было принято, оно должно быть корректно отформатировано, а именно:
- В одной строке допускается наличие не более b слов,
- Соседние слова в строке разделяются ровно одним пробелом.
- Каждая строка должна завершаться ровно одним переводом строки.
- Первый символ строки, а также символ перед переводом строки не могут быть пробелами.
Формат ввода:
В первой строке задано целое число aa — ширина окошка (1≤a≤100). Во второй строке задано целое число b — максимальное количество слов в строке (1≤b≤60). Далее следует набранный текст — не более 1000 слов, состоящих из строчных латинских букв, по одному слову в строке. Гарантируется, что длина слова не превосходит aa. Конец ввода заканчивается словом “0” (единичный ноль), которое не включается в сообщение.
Формат вывода:
Выведите отформатированное сообщение. Учтите, что в этой задаче сравнение ответа с правильным производится побайтово (то есть с учётом пробелов и переводов строк).
Пример:
Ввод:
10
2
contora
is
doing
well
0
Вывод:
contora is
doing well
Мое решение:
Python:
a = int(input()) # Ширина окна
b = int(input()) # Максимальное количество слов в строке
# Считываем текст по словам, сохраненным по одному слову на строке
words = []
while True:
word = input()
if word == '0':
break
words.append(word)
result = []
current_line = []
valid = all(len(word.split()) == 1 for word in words)
if valid:
for word in words:
if not current_line and len(word) <= a:
current_line.append(word.rstrip().lstrip())
elif current_line and len(current_line) <= b and len(" ".join(current_line + [word])) <= a:
current_line.append(word.rstrip().lstrip())
else:
result.append(" ".join(current_line))
current_line = [word]
if current_line:
result.append(" ".join(current_line))
for line in result:
print(line)
Вылетает с ошибкой Wrong answer. Уже несколько часов не могу понять, что не так, если может кто подсказать, что реализовано не так или что я не заметил буду благодарен.
Последнее редактирование: