Автор: | Седьмая Всероссийская Командная олимпиада школьников по программированию | |||
Входной файл: | cinema.in | Ограничение времени: | 2 сек | |
Выходной файл: | cinema.out | Ограничение памяти: | 64 Мб |
Марья Ивановна с Марьей Михайловной привели школьников в кинотеатр. Чтобы не было никаких обид, Марья Ивановна построила всех школьников по алфавиту и рассадила их: сначала в первый ряд слева направо, затем во второй слева направо и т.д., заполнив весь зал из n рядов по m кресел. Тут пришла Марья Михайловна и сказала, что ребята сели неправильно - надо пересесть. Она предложила сначала заполнить все первые места от первого ряда к последнему, затем все вторые места и т. д.
Определите, сколько школьников после такой пересадки останется на своем месте.
Например, если n = 3 и m = 3, то в первом случае дети сядут так:
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
а во втором - так:
1 | 4 | 7 |
2 | 5 | 8 |
3 | 6 | 9 |
Таким образом, три школьника: 1, 5 и 9 останутся на своих местах.
№ | Входной файл (cinema.in ) |
Выходной файл (cinema.out ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Седьмая Всероссийская Командная олимпиада школьников по программированию | |||
Входной файл: | frame.in | Ограничение времени: | 2 сек | |
Выходной файл: | frame.out | Ограничение памяти: | 64 Мб |
Картины художников-абстракционистов весьма необычны. На них часто изображены абсолютно непонятные предметы. Один известный художник-абстракционист решил добавить своим картинам оригинальности следующим способом. Вместо прямоугольных рамок, в которые обычно вставляются картины, он решил на ближайшей выставке использовать треугольные.
Однако все оказалось совсем не так просто. Художник изготовил рамку, поместил в нее картину и понял, что что-то не так. Рамка получилась слишком широкой, и картина выглядела совсем не так ярко, как он ожидал.
Немного поразмыслив, художник понял, что то, насколько рамка "подходит" для картины, определяется площадью рамки. Кроме этого он понял, что рамки надо не изготавливать самостоятельно, а покупать в специальном магазине. Заглянув в прайс-лист магазина, он увидел, что для каждой рамки в нем указаны длины внешних сторон и ширина.
Поясним подробнее то, как выглядит треугольная рамка. Ее изготовление происходит следующим образом: берется доска из красного дерева, имеющая форму треугольника со сторонами a, b и c. После этого стороны этого треугольника мысленно сдвигаются внутрь него на расстояние d (измеряемое по перпендикуляру к соответствующей стороне). На точках пересечения "сдвинутых" сторон строится маленький треугольник, который затем вырезается из исходного. Пример рамки со сторонами a = 6, b = 8, c = 10 и шириной d = 1 показан на рисунке.
Помогите художнику по имеющимся в прайс-листе данным вычислить площадь рамки.
№ | Входной файл (frame.in ) |
Выходной файл (frame.out ) |
---|---|---|
1 |
|
|
Автор: | Седьмая Всероссийская Командная олимпиада школьников по программированию | |||
Входной файл: | windows.in | Ограничение времени: | 2 сек | |
Выходной файл: | windows.out | Ограничение памяти: | 64 Мб |
Когда пользователь работает в операционной системе Windows, у него часто запущено несколько приложений. Каждое из приложений работает в отдельном окне. Для переключения между окнами используется комбинация клавиш "Alt+Tab". Эта комбинация делает активным окно, в котором пользователь работал перед тем, как перейти в текущее активное окно.
Чтобы переключиться в другое окно, можно нажать клавишу "Alt" и затем, не отпуская ее, несколько раз нажать клавишу "Tab". Чтобы понять, какое окно станет активным после этого, воспользуемся следующей моделью. Пусть запущено п приложений. Приложения в операционной системе организованы в виде списка и упорядочены по убыванию времени последней активности. То есть приложение, окно которого является активным в настоящий момент - первое в списке, приложение, окно которого было активно перед этим - второе, и т. д.
Если нажать клавишу "Alt" и затем, не отпуская ее, нажать клавишу "Tab" k раз, то активным станет окно приложения, которое находится на (k mod n) + 1-м месте в списке. Здесь a mod b означает остаток от деления a на b. Иными словами, операционная система рассматривает список как циклический, переходя после последнего элемента списка к первому.
При запуске нового приложения оно добавляется в начало списка.
Задана последовательность действий пользователя, где каждое действие - либо запуск приложения, либо переключение между окнами. Выведите в выходной файл, в каком порядке пользователь работал с приложениями.
№ | Входной файл (windows.in ) |
Выходной файл (windows.out ) |
---|---|---|
1 |
|
|
Автор: | Седьмая Всероссийская Командная олимпиада школьников по программированию | |||
Входной файл: | chess.in | Ограничение времени: | 2 сек | |
Выходной файл: | chess.out | Ограничение памяти: | 64 Мб |
Известный частный сыщик поставил чашку с чаем на специальную подогревающую подставку, питающуюся от USB-порта его компьютера, и приступил к обдумыванию очередного запутанного преступления. Через пару часов раздумий он понял, что для разгадки этого дела достаточно определить, была ли на месте преступления шахматная доска.
Недавно он получил по электронной почте фотографию места преступления. Подозрительный фрагмент (тот, на котором изображен предмет, похожий на шахматную доску) уже был скопирован в отдельный файл, но вдруг выяснилось, что, поскольку фотография была сжата с потерей качества, некоторые пиксели на ней из белых или черных стали серыми. Таким образом, определение того, является ли сфотографированный предмет шахматной доской, стало намного более сложным.
Все усложняется тем, что на фотографию могла попасть не вся шахматная доска, а лишь ее часть. Например, на приведенном рисунке на фотографию попала часть доски, у которой каждое поле имеет длину стороны, равную трем пикселям.
Помогите частному сыщику в расследовании преступления. Напишите программу, которая определит, может ли заданный фрагмент фотографии быть изображением части шахматной доски, и, если может, восстановит изображение шахматной доски до сжатия.
Шахматная доска — это квадрат, разбитый на х2 (для некоторого х) равных квадратов — полей. Стороны полей параллельны сторонам изображения. Длина стороны каждого поля шахматной доски выражается целым числом пикселей. Все пиксели, принадлежащие одному полю, покрашены в один и тот же цвет — черный или белый. При этом соседние поля (поля, имеющие общую сторону) покрашены в различные цвета.
№ | Входной файл (chess.in ) |
Выходной файл (chess.out ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Седьмая Всероссийская Командная олимпиада школьников по программированию | |||
Входной файл: | number.in | Ограничение времени: | 2 сек | |
Выходной файл: | number.out | Ограничение памяти: | 64 Мб |
Вася написал на длинной полоске бумаги большое число и решил похвастаться своему старшему брату Пете этим достижением. Но только он вышел из комнаты, чтобы позвать брата, как его сестра Катя вбежала в комнату и разрезала полоску бумаги на несколько частей. В результате на каждой части оказалось одна или несколько идущих подряд цифр.
Теперь Вася не может вспомнить, какое именно число он написал. Только помнит, что оно было очень большое. Чтобы утешить младшего брата, Петя решил выяснить, какое максимальное число могло быть написано на полоске бумаги перед разрезанием. Помогите ему!
№ | Входной файл (number.in ) |
Выходной файл (number.out ) |
---|---|---|
1 |
|
|
2 |
|
|