2010(8 задач)
2011(8 задач)
2012(8 задач)
2013(8 задач)
2014(8 задач)
2015(8 задач)
2016(8 задач)
2017(8 задач)
Московская областная олимпиада(13 задач)
Кировская открытая областная олимпиада(21 задач)
Санкт-Петербург(3 задач)
Назовем треугольником Паскаля следующую числовую структуру. В первой строке стоят две единицы, а в последующих строках каждый элемент равен сумме двух вышестоящих над ним элементов.
Ваша задача найти наибольший общий делитель (НОД) элементов i-й строки, стоящих между единицами.
Формат входных данных
Задано единственное число i (1 < i < 231).
Формат выходных данных
Вывести НОД элементов.
3
3
4
2
Дано клеточное поле из N строк и M столбцов. На поле есть запрещенные для движения клетки. Вы начинаете «гонку» из клетки в левом верхнем углу, а заканчиваете ее в правом нижнем. У вас есть соперник, стартовая точка и путь движения которого известны заранее (путь необязательно оптимальный). Вам предлагается за минимальное число шагов достичь финиша по следующим правилам:
Двигаться можно только в соседнюю по горизонтали или вертикали свободную клетку (одно перемещение – это переход на соседнюю клетку).
Передвижение осуществляется поочередно: сначала ходит соперник, затем вы.
Не допускаются нахождение обоих участников в одном квадрате одновременно.
Ходы соперников обязательны.
Если ходы соперника закончились, то он останавливается в последней достигнутой им клетке. Но заранее известно, что он при этом не заблокирует возможный путь до финиша. Если соперник достиг финиша, то он исчезает с поля.
Требуется написать программу подсчета минимального количества перемещений, требуемых для достижения финиша или определить, что это сделать невозможно.
Формат входных данных
В первой строке размер поля: два числа через пробел 0 < N, М ≤ 150. Далее идет N строк в каждой из которых по M символов, описывающих поле: точка (.) – клетка свободна, решетка (#) – непроходимая клетка. В следующей строке два числа – номер строки и столбца, где находится ваш соперник. Далее следует строка с описанием пути соперника: R – движение вправо, L – влево, U – вверх, D - вниз. Количество ходов соперника не более 32000.
Формат выходных данных
Содержит единственное число – минимальное число шагов, необходимое для достижения финиша, в случае невозможности вывести –1.
3 5 ..... .#... .#... 1 4 R
6
3 5 ..... .#... .#... 1 4 LLLRLRRR
12
На прямоугольной доске назовем непустое множество клеток группой, если они все являются соседями какой-нибудь одной и той же клетки не входящей в это множество. Две клетки соседние, если у них есть хотя бы одна общая точка (то есть по стороне или по диагонали). Таким образом, на доске 1x1 - нет ни одной группы, на доске 1x2 - две группы, на доске 2х2 - 14 групп (рис. 1). Пример множества клеток на доске 3x3, не являющегося группой, приведен на рис. 2. Напишите программу, подсчитывающую количество различных групп на доске
В первой строке заданы числа \(N\) и \(M\). 1 ≤ \(N\) ≤ 1000, 1 ≤ \(М\) ≤ 1000.
Вывести одно число – количество различных групп для заданной доски.
2 2
14
1 1
0
Суперчислом называется число, являющееся суммой двух простых чисел из диапазона [2…\(B\)]. Требуется найти все суперчисла из заданного диапазона [\(A\)…\(B\)].
Во входном файле даны два числа \(A\) и \(B\) (2 ≤ \(A\) ≤ \(B\) ≤ 40000), определяющие диапазон [\(A\)…\(B\)].
В выходной файл вывести все найденные суперчисла из заданного диапазона в возрастающем порядке.
3 10
4 5 6 7 8 9 10
Суперстрока состоит из символов латинского алфавита. Гласными считаются буквы: a,e,i,o,u,y,A,E,I,O,U,Y. Требуется посчитать количество способов разбиения заданной суперстроки на слова. Словом считается последовательность букв, содержащая хотя бы одну гласную букву. Ограничения. Длина строки не превышает 200 символов. Количество разбиений не превышает 2.000.000.000. Размер входного файла не превышает 3,5 Мбайт.
Формат входных данных
В первой строке дано число N (1 ≤ N ≤ 50000). Далее записаны N суперстрок.
Формат выходных данных
N чисел – количество возможных вариантов разбиения соответствующей суперстроки.
5 aa bbb aba bb aba
2 0 3 0 3