Pascal ABC

 

ГЛАВНАЯ
ССЫЛКИ
ОЛИМПИАДНЫЕ ЗАДАНИЯ
Очень простые

Проблема с A и B

Трамвайные билеты

Шифр Цезаря

Четные и нечетные члены последовательности

"Мы вас упакуем!"

Простые

Равновеликие прямоугольники

Скобки

 

Уравнение

 

Вирусы

 

КВН

 

Коррекция кода

 

Степень

 

Демократия в опасности

 

Пуговицы

 

A to B

 

Палиндромы

 

Почти Крэг Туми

 

Виза

 

Ездец

 
Средней сложности  

MIME64

 

Куль хацкеры

 

Редкое имя

 

Города

 

Исправления

 

Банки

 

2^n

 

Ниточка

 

Массивище

 

Знакомые

 

Считаем кораблики

Лошадью ходи!

Левые повороты

Прицельное метание помидор

Анаграммы

Треугольник

Принцип компании

Уникальная строка

Конфуз

K-ичные числа

Михаил Густокашин против бюрократии

Агенты

Игра в слова

Сложные

Диски

Домино

Монеты

Программистика

Хитрющая строка

Робот-сапер

Квадраты

Упаковка простых

Оппозиция

 

Замок

 

Многоугольники

 

Электронные часы

 

Дождик

 

Черепаха

 

Метро

 

Террористы

 

Школы

 
Очень сложные/особо интересные  

Система Защиты

 

Бизнес-классики

 

Телеметрия

 

Лесной пожар

 

Олимпиада

 

Автобусный диспетчер

 

 Кубики

 

Электронная почта

 

Автобус

 

 

 

 

ОЛИМПИАДНЫЕ ЗАДАНИЯ

Олимпиадные задачи с рекомендациями к решениям

Задача 24: Исправления.

Дан текст, заканчивающийся точкой. Среди символов текста особую роль играет символ #, появление которого в тексте означает удаление предыдущего символа. Соответственно, k символов # подряд отменяют k предыдущих символов текста, если таковые имеются на текущей строке.
Требуется написать программу, преобразующую текст с учетом указанного значения символа #.

Замечания:
1) Если в какой-то момент перед некоторым символом # на этой строке не осталось символов, то его следует игнорировать.
2) В выходной файл символы # выводить не следует ни в каком случае.
3) Если в результате преобразований все символы в строке входного файла были удалены, то в выходном файле в этом месте следует вывести пустую строку.

Формат входных данных
Во входном файле не менее одной и не более 100 строк текста. Признаком окончания ввода служит точка (символ "." ). Каждая строка содержит не более 200 символов.

Формат выходных данных
Для каждой строки входного файла следует вывести ее преобразованный вариант в соответствующей строке выходного файла.
Завершающую текст точку в выходной файл писать не надо.

Пример ввода
Hello ww#orld! #
a##abc#
the##he end.

Правильный вывод для примера
Hello world!
ab
the end

Решение:
Это задача D с командного турнира по программированию "ИМ-Y2K" в СамГУ.
Здесь логично использовать массив из символов char длиной в 200 символов. При последовательном чтении строки по одному символу этот символ следует добавлять в массив и увеличивать счетчик, показывающий на следующий элемент на 1. При появлении символа # указатель следует уменьшить на 1 (предварительно убедившись, что он больше 0). Когда мы доходим до конца строки, то последовательно выводим все символы нашего массива, переходим к следующей строке и устанавливаем указатель на последний символ на 1, а если на нашем пути попалась точка, то выводим содержимое массива и выходим из программы.

Далее ð





 


 

 

 
 

СЕРВИС

Copyright © 2008 СОШ №2 им. Н.П. Массонова г.Свислочь © Синица А.А.