Задача A. Текстовый редакторАвтор задачи: И. Туфанов
Условие
Начинающий программист Билл написал свою первую программу -- текстовый редактор. Теперь его интересует вопрос, сколько нажатий клавиш потребуется пользователю, чтобы перевести курсор в любую позицию внутри текста. Текст, с которым работает редактор Билла, представляет собой набор строк. Строки состоят из печатных символов (с ASCII-кодами больше 32) и пробелов. Строка никогда не начинается пробелом и не заканчивается им. Слово -- это часть строки, не содержащая пробелов и ограниченная слева и справа пробелами или концами строки. Пользователь может перемещать курсор с помощью восьми операций:
Любая операция, кроме двух последних, требует одного нажатия на клавишу. Перемещение на слово влево и на слово вправо требует двух нажатий (Ctrl+left, Ctrl+right). Формат входного файлаПервая строка входного файла содержит целые числа R C -- номер текущей строки и номер символа в текущей строке соответственно. Все остальные строки содержат текст, загруженный в редактор. Формат выходного файлаВыходной файл должен содержать единственное число: наименьшее значение N, такое, что количество нажатий клавиш, необходимое для перевода из текущей позиции в любую другую позицию текста не превосходит N. ОграниченияРазмер текста во входном файле не превосходит 2000 байт. Входной файл не содержит пустых строк. Примеры тестов
Задача B. Важнейшая частьАвтор задачи: А. Кленин
Условие
Компания X желает разработать программу для автоматического поиска интересной информации на веб-страницах. В частности, было замечено, что авторы веб-сайтов любят выделять важную информацию при помощи курсива, жирного шрифта, подчёркивания и т.д. Директор компании высказал предположение, что самая важная информация будет выделена сильнее всего. Поэтому вам поручено написать программу, которая в данном тексте найдёт участок с наибольшим количеством выделений. Исходными данными для программы будет строка символов, содержащая пары тегов ... , ... , ... , ограничивающие выделенные различным образом подстроки. Теги могут повторяться и вкладываться друг в друга, например This is a sample of very important text. Ваша программа должна найти подстроку, вложенную в наибольшее количество тегов. Если таких подстрок несколько, следует вывести самую левую из них. В приведённом примере ответом будет подстрока very. Формат входного файлаВо входном файле находится исходная строка текста. Формат выходного файлаВ выходном файле должна содержаться наиболее выделенная подстрока. Подстроку следует выводить целиком: от символа, следующего за открывающим тегом, до символа, предшествующего закрывающему тегу. ОграниченияДлина исходной строки не превосходит 10000 символов. Открывающие и закрывающие теги образуют правильную скобочную последовательность (каждому открывающему тегу соответствует парный закрывающий, и наоборот). Например, последовательность ab не может встретиться во входном файле. Между открывающим и закрывающим тегом есть по крайней мере один символ. Примеры тестов
Задача C. КПКАвтор задачи: И. Олейников, Т. Чистяков
Условие
Хакер Вася решил собрать карманный персональный компьютер (КПК). Согласно найденной им в Интернет инструкции компьютер собран правильно тогда, когда ток из каждой микросхемы может пройти в каждую и притом единственным путем. Вася собрал компьютер, но сомневается в правильности сборки. Напишите программу, которая по данному Васей описанию схемы определит, какие провода нужно удалить, какие оставить и какие придется добавить, чтобы компьютер был собран правильно. Так как Васе не хочется выполнять много работы, он просит вас удалять и добавлять провода таким образом, чтобы суммарное число добавленных и удаленных проводов было минимально. Формат входного файлаВходной файл содержит числа N и M -- соответственно число микросхем и проводов в КПК, за которыми следуют M пар чисел ai aj, означающие, что i-ая и j-ая микросхемы соединены проводом. Ток по проводу может течь в любом направлении. Формат выходного файлаВыходной файл содержит сначала число K1 -- количество проводов, которые нужно оставить в схеме, затем K1 пар чисел ai aj -- описание проводов. После этого следует число K2 -- число проводов, которые нужно добавить в схему, затем K2 пар чисел ai aj -- описание проводов. Если решений несколько, выведите любое из них. Ограничения1 ≤ N ≤ 1000, 0 ≤ M ≤ 106 Примеры тестов
Задача D. МарсоходАвтор задачи: И. Олейников, А. Кленин
Условие
В далеком будущем российские ученые собрали и отправили аппарат для исследования поверхности Марса -- "Марсоход-1". Поверхность кратера, в который высадился марсоход, разбита на участки размером 1 x 1 метр каждый. Программа движения марсохода состоит из последовательности команд:
Координаты юго-западного угла кратера -- (0, 0). Оси координат направлены с запада на восток и с юга на север. Известно, что марсоход высадился где-то в прямоугольнике с координатами (x1, y1) − (x2, y2). К сожалению связь с марсоходом была потеряна по неизвестным причинам, но он успел передать, что полностью выполнил программу движения. Удалось также определить, что последний сигнал был послан из прямоугольника с координатами (x3, y3) − (x4, y4). Ученые хотят сократить зону поиска и просят вас написать программу, определяющую, на каких участках этого прямоугольника может находиться марсоход. Формат входного файлаВ первой строке входного файла содержатся целые числа x1 y1 x2 y2 x3 y3 x4 y4, во второй строке содержится программа марсохода. Формат выходного файлаВыходной файл должен содержать abs(y4 − y3) + 1 строк по abs(x4 − x3) + 1 символов в каждой -- изображение зоны поиска, на котором участки, где может находиться марсоход, отмечены символом 'x' (ASCII 120), а остальные -- символом '.' (ASCII 46). Ограничения0 ≤ xi, yi ≤ 1000, количество команд в программе не превышает 30000. Примеры тестов
Задача E. Красивые степениАвтор задачи: И. Лудов
Условие
Математик Николай Николаевич очень любит красивые числа. Причем красивым он считает такое число, запись которого начинается с единицы, далее следуют несколько нулей, и заканчивается опять единицей. Его коллега Юрий Александрович считает, что если такое красивое число возвести в некоторую степень, то оно станет еще лучше. Николай Николаевич сомневается, но хочет проверить это. Вдруг получившиеся числа понравятся ему больше! Так как вручную возводить в степень тяжело, а в программировании он разбирается не так хорошо, как в математике, вам придется ему помочь. Формат входного файлаВо входном файле находятся два целых числа: N K, где
Обратите внимание, что если указано 0 нулей, подразумевается число 11, а не 1. Формат выходного файлаВ выходном файле должно содержаться заданное число, возведенное в заданную степень. Ограничения0 ≤ N ≤ 1000, 0 ≤ K ≤ 8 Примеры тестов
Задача F. Круговая оборонаАвтор задачи: А. Кленин, Т. Чистяков
Условие
У государства Централии есть четыре агрессивных соседа: Верхия, Низия, Правия и Левия. Правители соседних государств постоянно сосредотачивают на границе с Централией свои армии, ожидая удобного случая для вторжения. Удобным агрессоры считают случай, когда количество армий Централии, охраняющих границу с данным государством, будет меньше, чем количество армий, сосредоточенных на границе агрессором. Поскольку содержание армий -- дорогостоящее занятие, Централия может постоянно поддерживать только N армий. К счастью, по той же причине её соседи, чья экономика менее стабильна, чем в Централии, могут в i-й год подготовить для завоевания Ai,k армий, где k = 0…3 -- номер соседа. В Централии проживает могущественный колдун-экономист, который сумел предсказать количество враждебных армий на T лет вперёд. Вам поручена роль главнокомандующего армиями Централии с задачей распределения армий по границам таким образом, чтобы удобный для вторжения случай предоставился как можно позже. Задача осложняется тем, что за один год любая армия Централии может переместиться с той границы, которую она занимала в прошлом году, только на соседнюю границу, т.е. с k-й границы либо на границу (k + 1)mod 4, либо на границу (k + 3)mod 4. Формат входного файлаВо входном файле находятся числа N T, за которыми следует T четвёрок чисел Ai,0 Ai,1 Ai,2 Ai,3 -- количество армий, которые будут выставлены в i-м году каждым из соседних государств. Формат выходного файла
В выходном файле должно содержаться число Q -- максимальное количество лет, в течение которого можно избежать вторжения (0 ≤ Q ≤ T), за которым следуют Q четвёрок чисел Bi,0 Bi,1 Bi,2 Bi,3 -- количество армий, которые следует в i-м году расположить на каждой из границ (Bi,0 + Bi,1 + Bi,2 + Bi,3 = N). Расположение защищающихся армий в первом году может быть произвольным, а расположение в каждом следующем году должно учитывать ограничения на перемещение армий. Если существует несколько оптимальных решений, вывести любое из них. Ограничения1 ≤ N ≤ 10, 1 ≤ T ≤ 1000, 0 ≤ Ai, j ≤ N Примеры тестов
Задача G. ГирляндаАвтор задачи: А. Кленин
Условие
Ваша программа должна вывести в выходной файл изображение гирлянды. Гирлянда состоит из N звеньев, каждое из которых имеет вид ромба, состоящего из символов '#' (ASCII 35) для нечётных звеньев, либо '*' (ASCII 42) -- для чётных звеньев. Размер i-го звена задаётся целым числом Ai. Каждая сторона ромба размером Ai состоит из Ai + 1 символа. Гирлянда должна быть изображена на фоне прямоугольника, заполненного символами '.' (ASCII 46). Каждое звено, начиная со второго, расположено вертикально под предыдущим и "сцеплено" с ним, как изображено в примере. Формат входного файлаВо входном файле находится целое число N, за которым следует N чисел A1… AN -- размеры звеньев. Формат выходного файлаВыходной файл должен содержать изображение гирлянды. Ограничения1 ≤ N ≤ 100, 1 ≤ Ai ≤ 100 Примеры тестов
|
© 2004 Якутское городское управление образования
При использовании материалов сервера ссылка на источник и этот сайт обязательна. |