Турнир Архимеда(52 задач)
Кировские командные турниры(8 задач)
Барнаульские командные турниры(10 задач)
Московская командная олимпиада(246 задач)
Командные чемпионаты школьников Санкт-Петербурга по программированию(167 задач)
ВКОШП(180 задач)
Известный частный сыщик поставил чашку с чаем на специальную подогревающую подставку, питающуюся от USB-порта его компьютера, и приступил к обдумыванию очередного запутанного преступления. Через пару часов раздумий он понял, что для разгадки этого дела достаточно определить, была ли на месте преступления шахматная доска.
Недавно он получил по электронной почте фотографию места преступления. Подозрительный фрагмент (тот, на котором изображен предмет, похожий на шахматную доску) уже был скопирован в отдельный файл, но вдруг выяснилось, что, поскольку фотография была сжата с потерей качества, некоторые пиксели на ней из белых или черных стали серыми. Таким образом, определение того, является ли сфотографированный предмет шахматной доской, стало намного более сложным.
Все усложняется тем, что на фотографию могла попасть не вся шахматная доска, а лишь ее часть. Например, на приведенном рисунке на фотографию попала часть доски, у которой каждое поле имеет длину стороны, равную трем пикселям.
Помогите частному сыщику в расследовании преступления. Напишите программу, которая определит, может ли заданный фрагмент фотографии быть изображением части шахматной доски, и, если может, восстановит изображение шахматной доски до сжатия.
Шахматная доска – это квадрат, разбитый на x2 (для некоторого x) равных квадратов – полей. Стороны полей параллельны сторонам изображения. Длина стороны каждого поля шахматной доски выражается целым числом пикселей. Все пиксели, принадлежащие одному полю, покрашены в один и тот же цвет – черный или белый. При этом соседние поля (поля, имеющие общую сторону) покрашены в различные цвета.
В первой строке вводятся два целых числа: m и n – размеры фрагмента фотографии в пикселях ( 1m, n
250).
Следующие m строк содержат по n символов каждая, j-й символ i-й строки соответствует пикселю с координатами (i, j). Символ «.» (точка) означает белый пиксель, символ «*» – черный, символ «?» – серый.
Если заданный фрагмент фотографии может быть изображением части шахматной доски, выведите слово «YES». После этого выведите m строк по n символов в каждой – изображение соответствующей части шахматной доски в том же формате, что и во входных данных, только серые пиксели должны быть заменены на белые или черные. Если решений несколько, выведите любое.
В противном случае программа должна вывести слово «NO».
4 5 *.?.? .***. .*?*. .*?*.
YES *...* .***. .***. .***.
4 5 ..?.. .***. .*?*. .*?*.
NO
Сегодня в индийском городке Старый Гоа отмечают День святого Франциска Ксавьера. Святой Франциск Ксавьер – миссионер, член ордена иезуитов, считается величайшим католическим миссионером Нового времени.
Мощи святого Франциска Ксавьера – духовного покровителя индийских христиан – покоятся в Старом Гоа в известном католическом храме – Базилике Бом Иисус. Со дня постройки храма в 1605 году раз в десять лет мощи святого выставляются для всеобщего обозрения.
Индийский крестьянин Вирмарам – человек очень набожный, он не упускал случая коснуться святых мощей. Зная годы его жизни, определите, сколько раз он мог коснуться святых мощей (считается, что в год своего рождения он не мог этого сделать, а в год смерти – мог).
Вводятся два натуральных числа – год рождения и год смерти. Числа разделены пробелом. Оба числа не превосходят 2000.
Программа должна определить, сколько раз крестьянин мог коснуться святых мощей, и вывести ответ - одно число.
1610 1640
3
1615 1645
3
Решите в целых числах уравнение:
\(\sqrt{ax+b} = c\),
a, b, c – данные целые числа: найдите все решения или сообщите, что решений в целых числах нет.
Вводятся три числа a, b и c, разделенные пробелами.
Программа должна вывести все решения уравнения в порядке возрастания, либо NO SOLUTION (заглавными буквами), если решений нет. Если решений бесконечно много, вывести MANY SOLUTIONS.
1 0 0
0
1 2 -3
NO SOLUTION
Натуральные числа записаны в (бесконечную) таблицу, как показано на рисунке.
Требуется по заданному числу вывести всех его соседей (числа, записанные в клетках сверху, справа, слева и снизу, если таковые имеются)
Вводится одно натуральное число, не превосходящее \(10^9\).
Программа должна вывести все числа, записанные в соседних клетках с данным, в порядке возрастания. Числа должны разделяться пробелом.
1
3
7
3 6 8 13
Вася давно мечтает выиграть олимпиаду по информатике. У него всего три слабых места: циклы, массивы и строки. Перед сегодняшним турниром Вася провёл интенсивную подготовку, в ходе которой он решил A задач на циклы, B задач на массивы и C задач на строки. Впоследствии выяснилось, что из решённых задач D были и на циклы, и на массивы, E – на циклы и на строки, F – на строки и на массивы. И даже было G задач, которые включали и циклы, и строки, и массивы. Помогите Васе вычислить, сколько всего различных задач он решил.
Вводятся числа A, B, C, D, E, F и G, разделенные пробелами.
Во всех тестовых примерах все входные данные корректны и не превосходят 1 000. Числа могут быть равны нулю.
Выведите одно число – число задач, решенных Васей.
0 0 0 0 0 0 0
0
1 1 1 0 0 0 0
3
1 1 1 1 1 1 1
1