См. также:


Результаты

  Санкт-Петербургские Олимпиады по Информатике

Задачи городской олимпиады СПб 1994 года

Районный теоретический тур (1-ый тур)

Редуктор 1994 цифра Фибоначчи Восстановление скобок

Городской теоретический тур (2-ой тур)

Восстановление скобок Кубики Игра "Ну, погоди!"

Городской практический тур (3-ый тур)

Сумма прописью Нарисуйте картинку

Районный теоретический тур (1-ый тур)


Задача 1. Редуктор

"У редукторов нет никакого стыда,
Их и вовсе ничто не волнует,
Им и в бок не стреляет,
и в спину не дует,
не служба у них, а мечта..."

М.Щербаков.

Дан набор шестеренок, для каждой известно количество зубьев. Их можно скреплять так, чтобы они вращались совместно на одной оси. Известно, что первая шестеренка крутится по часовой стрелке и делает P оборотов в минуту (на ее ось ничего насаживать нельзя). Требуется подобрать промежуточные шестеренки, при необходимости насаживая их на общие оси и вводя в зацепление так, чтобы последняя шестеренка крутилась также по часовой стрелке и делала Q оборотов. (Не обязательно использовать все шестеренки).

Описание входных данных:

  • количество шестеренок
  • обороты первой шестеренки
  • обороты последней шестеренки
  • количество зубьев у 1-ой шестеренки (она должна быть первой в искомой цепочке шестеренок)
  • количество зубьев у 2-ой шестеренки
  • ........................
  • количество зубьев у n-ой шестеренки (она должна быть последней).

На выходе должно быть:

  • фраза "решение есть" или "решения нет"
  • если решение есть, то
    • первая пара шестеренок
    • вторая пара шестеренок
    • .........................
    • последняя пара шестеренок

где "пара" - две шестеренки, насаженные на одну ось; в ответе указываются два числа, соответствующих количеству зубьев у каждой шестеренки; причем, если шестеренка одна, то указывается одно число; считается, что шестеренки введены в зацепление таким образом, что последняя шестеренка из каждой пары сцеплена с первой шестеренкой в следующей паре.

Задача 2. 1994 цифра Фибоначчи

"Это очень длинная и грустная история,- начала
Мышь со вздохом. Помолчав, она вдруг взвизгнула:
- Прохвост..."


Л.Кэролл. Алиса в Стране Чудес.

Ряд чисел Фибоначии предстваляет собой последовательность натуральных чисел такую, что первое и второе числа равны единице, а каждое следующее равно сумме двух предыдущих:

1 1 2 3 5 8 13 21 34

Числа Фибоначчи выписываются одно за другим вплотную. Определите, какой будет 1994-ая цифра в такой последовательности. (Обратите внимание, что соответствующее число Фибоначчи может оказаться весьма большим.)

Входных данных нет. На выходе должно быть:

фраза "1994 цифра равна " и искомая цифра

Задача 3. Восстановление скобок

"Случилось так, как и думал всяк..."

Гамлет.

Случилось вот что. Некто взял правильно записанное математическое выражение со скобками и выкинул из него все, кроме скобок:

 ( ( ) ( ( ) ( ) ) ( ( ) ) ( ) )

Затем Некто занялся такой операцией. Под каждой открывающей скобкой он записывает, сколько скобок (любых) заключено между ней и соответствующей ей закрывающей, а под закрывающими не пишет ничего:

 ( ( ) ( ( ) ( ) ) ( ( ) ) ( ) )
14 0   4 0   4     2 0     0

Получается ряд чисел:

14 0 4 0 0 2 0 0

Представьте, что Вам дан такой ряд чисел. Восстановите исходную последовательность скобок. Описание входных данных:

последовательность целых неотрицательных чисел.

На выходе должно быть:

  • фраза "решение есть" либо "решения нет"
  • если решение есть, то последовательность скобок, соответствующая исходной последовательности.

Городской теоретический тур (2-ой тур)


Задача 1. Восстановление скобок

Исходные данные - строка из круглых скобок и знаков вопроса. Составьте программу, печатающую все правильные скобочные выражения, которые можно восстановить из входной строки заменой знаков вопроса на скобки, либо сообщающую, что решения нет.

Пример 1. Исходная строка: ((??)?
Вывод программы: ((()))
(()())

Пример 2. Исходная строка: )?
Вывод программы: восстановить невозможно

Задача 2. Кубики

Даны несколько разверток кубиков с гранями, пронумерованными от 1 до 6 (наподобие игральной кости). Определить, какие из них соответствуют одним и тем же кубикам.

Исходные данные программы: число разверток R (R<=10) и сами эти развертки. Развертка кубика задается перечислением номеров его граней в порядке: левая, правая, верхняя, передняя, нижняя и задняя грани.

На выходе должно быть количество различных кубиков M и для каждого кубика - номера соответствующих разверток.

Пример.

Исходные данные:

3
1 2 6 4 5 3
4 6 1 5 3 2
4 1 3 6 2 5

Вывод программы:

Число различных кубиков - 2
Развертки кубика N 1: 1 2
Развертки кубика N 2: 3

Задача 3. Игра "Ну, погоди!"

Правила известной компьютерной игры "Ну, погоди!" следующие. В замкнутом лабиринте 10*10 клеток ставятся фишки Волка и Зайца. За Волка играет первый игрок, за Зайца - второй. Игроки делают ходы по очеререди, передвигая фишку на одну из свободных соседних клеток (по горизонтали или по вертикали). Первым ходит Волк. Продолжительнсть игры ограничена K ходами для каждого игрока. Первый игрок выигрывает, если ему удастся поставить Волка на соседнюю с Зайцем клетку. Иначе выигрывает второй игрок.

Напишите программу, которая определяет и печатает, есть ли у первого игрока выигрышная стратения, и если есть, то определяет и печатает первый ход Волка в этой стратегии.

Исходные данные программы: координаты фишек Волка и Зайца в любой удобной для Вас системе координат, продолжительность игры K и лабиринт, заданный матрицей 10*10 нулей и единиц: 0 - свободная клетка, 1 - занятая.

Примечания:

  1. K не превосходит 25.
  2. Нельзя выходить за пределы лабиринта.

Городской практический тур (3-й тур)


Сумма прописью

В банке "МяуМяуМяу" имеются три вида валюты: российсие рубли, японские йены и францезские франки). Напишите программу, которая вводит на русском языке описание суммы денег в одной из этих валют, печатает эту сумму в виде числа, переводит ее по текущему курсу в две оставшиеся и печатает результат на русском языке (копейками и сантимами пренебречь!).

Ваша программа должна проверять введенную строку на наличие орфографических и прочих ошибок. Исходная сумма денег заведомо меньше одного миллиарда рублей (в переводе по текущему курсу).

Работа программы должна быть построена в виде диалога. Признаком конца работы является ввода слова "Спасибо!" (см. пример).

Курс покупки равен курсу продажи и составляет:

  • 10 японских йен = 162 руб. 80 коп.
  • 1 французский франк = 291 руб. 94 коп.

ПРИМЕР РАБОТЫ ПРАВИЛЬНОЙ ПРОГРАММЫ

исходная строка: один миллион двести тысяч рублей
вывод программы: 1200000 рублей =
                 четыре тысячи сто десять франков
                 семьдесят три тысячи семьсот десять рублей
                 Спасибо!
исходная строк:  двадцать один йен
вывод программы: ошибка
                 Спасибо!
исходная строка: тысяча пятьсот тридцать рублей
вывод программы: ошибка
                 Спасибо!
исходная строка: Спасибо!
вывод программы: И Вам спасибо! До свидания!

Нарисуйте картинку

Нарисуйте на экране эту картинку (во весь экран, но с широкой белой каймой). Боковые грани заштрихуйте в разных направлениях. Предусмотрите возможность спокойно разглядеть Ваше творение.

Используются технологии uCoz