Турнир Архимеда(52 задач)
Кировские командные турниры(8 задач)
Барнаульские командные турниры(10 задач)
Московская командная олимпиада(246 задач)
Командные чемпионаты школьников Санкт-Петербурга по программированию(167 задач)
ВКОШП(180 задач)
Как и большинство пятиклассников, Петя очень любит компьютерные игры, больше всего ему нравится игра “Питон”. Суть этой игры состоит в следующем. На клетчатом поле размером \(N \times N\), находятся \(M\) кроликов. Каждый кролик имеет свою калорийность. Играющий управляет питоном, который изначально имеет длину \(2\). Каждую секунду голова питона перемещается на одну позицию вверх, влево, вправо или вниз, в соответствии с клавишей, которую в данный момент нажимает играющий, а хвост питона перемещается на клетку, где находилась часть питона, предшествующая хвосту. Когда питон съедает кролика с калорийностью \(K\), голова у него продолжает двигаться, а хвост в течении \(K\) секунд остается на месте. При этом происходит увеличение длины питона на \(K\). Как только питон пересекает сам себя, игра заканчивается. Если питон съедает кролика, когда процесс переваривания предыдущего кролика еще не закончен, то очередной кролик остается в пищеводе и ждет своей очереди на переваривание. Длина питона, в конечном итоге, должна увеличится на величину равную сумме калорийностей всех съеденных кроликов (если, разумеется, до этого игра не завершится).
После некоторой практики Петя решил, что его техника игры совершенна, и что надо оставить записи потомкам о своих играх. Для этого он записывал, на какие клавиши он нажимал и сколько времени (в секундах) он держал клавишу нажатой (а Петя, как истинный игроман, каждую секунду держал нажатой какую-либо клавишу). К сожалению, в той версии “Питона”, в которую играл Петя, содержалась ошибка, а именно в некоторых случаях питон мог пересекать сам себя без всяких последствий. Ваша задача состоит в том, чтобы написать программу, которая по известному начальному положению питона, расположению кроликов на площадке и последовательности нажатий на клавиши определит первый момент времени, когда питон пересечет сам себя. Известно, что других ошибок “Питон” не содержит. В частности, питон не может последовательно двигаться в противоположных направлениях.
На первой строке входного файла находятся числа \(N\) и \(M\) (\(2 \leq N \leq 50\), \(0 \leq M \leq 50\)) На следующей строке находятся координаты головы и хвоста питона \(X_1\),\(Y_1\) ,\(X_2\), \(Y_2\) (\(|X_1 - X_2| + |Y_1 - Y_2| = 1\)). На следующих \(M\) строках следуют величины \(A_i\), \(B_i\), \(C_i\) (\(1 \leq i \leq M\)), разделенные пробелами – координаты и калорийность \(i\)-го кролика (\(1 \leq A_i, B_i \leq N\), \(0 \leq C_i \leq 10\)). Начиная со следующей строки, будет находиться последовательность Петиных нажатий на клавиши, в следующем виде <Название клавиши> <время нажатия>. Название клавиши может быть одним из четырех UP, DOWN, LEFT и RIGHT (Петя нажимал только на клавиши стрелок), а время нажатия – натуральное число. Гарантируется, что каждая строка будет содержать информацию ровно об одном нажатии.
Ваша программа должна вывести в выходной файл – одно число, секунду, на которой закончится игра (то есть когда питон пересечет сам себя, или к моменту окончания записей).
5 3 4 4 4 5 1 1 0 3 3 2 5 5 1 UP 1 LEFT 1 UP 2 LEFT 2 DOWN 4 RIGHT 4 UP 1 LEFT 1 DOWN 1 LEFT 3
17
Многим из вас приходилось работать в Интернете, и наверняка вы неоднократно сталкивались с неправильными ссылками, то есть вы пытаетесь перейти по ссылке, а вам приходило сообщение, что такого документа не существует. Ваша текущая задача - реализовать упрощенную проверку страницы на корректность ссылок.
Входной файл будет содержать название одного или нескольких документов и их содержимое. Cодержимое документов будет иметь следующий вид: <HTML> Текст <END>
Так же в тесте могут быть ссылки на другие документы на данном сервере, они имеют следующий вид: <a href=”имя файла”>. Первая строка входного файла будет содержать число \(N\) --- количество файлов \(N\) (\(N \leq 100\)). Далее, с новой строки, будет следовать название \(1\)-го документа, за которым следует содержимое \(1\)-го документа, потом начиная с новой строки название \(2\)-го документа, потом содержимое \(2\)-го документа, и т.д. Размер входного файла не превышает 100 Кб.
Выведите два числа: количество неправильных ссылок (т.е. ссылок на несуществующие документов) во всех документах и количество документов недостижимых от первого (т.е. таких, до которых нельзя добраться, начав с первого документа и переходя по ссылкам).
4 index.html <html> Index <A HREF=”1”> <A href=”2”> <end> 1 <html> This picture shows an example <A HREF=”abc.jpg”> <end> 2 <html> This problem is very simple <A href=”Sol.pas"> <end> 3 <html> Information about other contests is unavailable Look there <A HREF=”hehe.html”> <end>
3 1
У Пети имеется неограниченный набор красных, синих и зеленых плиток размером 1×1. Он выбирает ровно N плиток и выкладывает их в полоску. Например, при N = 10 она может выглядеть следующим образом:
| К | К | К | С | З | К | К | З | К | С |
(Буквой К обозначена красная плитка, С – синяя, З – зеленая)
После этого Петя заполняет следующую таблицу:
|
| красный | синий | зеленый |
| красный | Y | Y | Y |
| синий | Y | N | Y |
| зеленый | Y | Y | N |
В клетке на пересечении строки, отвечающей цвету А, и столбца, отвечающего цвету Б, он записывает "Y", если в его полоске найдется место, где рядом лежат плитки цветов А и Б и "N" в противном случае. Считается, что плитки лежат рядом, если у них есть общая сторона. (Очевидно, что таблица симметрична относительно главной диагонали – если плитки цветов А и Б лежали рядом, то рядом лежали и плитки цветов Б и А.) Назовем такую таблицу диаграммой смежности данной полоски.
Так, данная таблица представляет собой диаграмму смежности приведенной выше полоски.
Петя хочет узнать, сколько различных полосок имеет определенную диаграмму смежности. Помогите ему.
(Заметьте, что полоски, являющиеся отражением друг друга, но не совпадающие, считаются разными. Так, полоска
| С | К | З | К | К | З | С | К | К | К |
не совпадает с полоской, приведенной в начале условия.)
Формат входных данных
Первая строка входного файла содержит число N. (1 N 100). Следующие три строки входного файла, содержащие по три символа из набора {"Y", "N"}, соответствуют трем строкам диаграммы смежности. Других символов, включая пробелы, во входном файле не содержится. Входные данные корректны, т.е. диаграмма смежности симметрична.
Формат выходных данных
Выведите в выходной файл количество полосок длины N, имеющих приведенную во входном файле диаграмму смежности.
Примеры
| Входные данные | Выходные данные |
| 10 YYY YNY YYN | 4596 |
| 3 YYY YYY YYY | 0 |
Красотой последовательности состоящей из \(N\) натуральных чисел, будем называть минимальное натуральное число \(M\), не представимое в виде алгебраической суммы некоторых элементов данной последовательности. Например, красота последовательности \(2\),\(3\),\(4\) равна \(8\) (\(1=-2+3\), \(2=-2+4\), \(3=3\), \(4=4\), \(5=2+3\), \(6=2+4\), \(7=4+3\), \(8=\)?). Напишите программу, которая по заданному числу \(N\), находит самую красивую последовательность, состоящую из \(N\) чисел.
Во входном файле находится число N (\(1 \leq N \leq 20\)).
Выведите в выходной файл \(N\) чисел – элементы найденной последовательности, упорядоченные по неубыванию.
2
1
3
Фирма Julick&Co ведет учет своих доходов и расходов. Но главный бухгалтер этой фирмы не любит математику, поэтому всякую сумму денег, которую фирма получает или отдает, он характеризует некоторым признаком. Например, сумму денег от 5 до 10 рублей он может охарактеризовать словом "МАЛО", а от 7 до 60 рублей словом "МНОГО". Время от времени он пересчитывает деньги и записывает признак суммы, которая имеется у фирмы. Недавно налоговая инспекция заинтересовалась доходами данной организации. Она хочет узнать, какая минимальная и максимальная сумма денег может быть сейчас у этой фирмы или выяснить, что имеется ошибка в ее записях. Известно, что по законам страны, где развиваются события, в любой момент времени организация должна обладать неотрицательной суммой денег.
Первая строка входного файла содержит \(K\) (\(1 \leq K \leq 100\)) – количество признаков, которые бухгалтер использует для описания различных сумм денег. На следующих \(K\) строках содержатся соответствующие признаки \(S_i\) и числа \(Min_i\) и \(Max_i\). \(S_i\) - слово, состоящие не более чем из \(20\) латинских букв, отделенное от последующих чисел одним пробелом, \(Min_i\) и \(Max_i\) - целые положительные числа (\(1 \leq Min_i \leq Max_i \leq 1000\)), разделенные одним пробелом. Следующая строка содержит количество денег, которое было у фирмы в начале ее деятельности – целое число . Затем следует число \(N\) – количество записей в бухгалтерской книге фирмы Julick&Co (\(1 \leq N \leq 100\)). Следующие N строк содержат записи в следующем формате: первый символ строки из множества {"+", "-", "!"} означает вид операции – доход, расход или подсчет денег соответственно. Непосредственно за этим символом (без пробелов) следует признак, характеризующий сумму денег, использованную в операции.
Если в учетных записях содержится ошибка, выведите в выходной файл число \(-1\), в противном случае выведите числа \(Min\) и \(Max\) - наименьшую и наибольшую сумму денег, которая может быть у фирмы Julick&Co.
3 LITTLE 1 5 MIDDLE 4 10 BIG 18 50 11 3 +MIDDLE !BIG -LITTLE
13 20