Наибольшее произведение трех чисел



Школьная олимпиада по программированию, тур 8, младшая лига.

ID задачи: a08.

Идентификатор для autotest: ol028.

Время на тест: 1 секунда.

Срок сдачи: вторник, 14 февраля 2006, 23:59.

Дано N целых чисел. Найдите наибольшее число, являющееся произведением трех из данных чисел.

Формат входных данных

Первая строка входных данных содержит натуральное число N, не превосходящее 106. Далее идет N целых чисел, не превосходящих по модулю 1000, по одному числу на строке.

Формат выходных данных

Программа должна вывести наибольшее число, которое можно получить перемножением трех из данных чисел.

Пример входных данных

5

2

-3

-4

5

6

Пример выходных данных

72

Комментарий. 72=(-3)×(-4)×6.

Кратчайший путь двух коней

Время на тест – 1 секунда.

Идентификатор autotest – ol029.

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

Входные данные

Во входных данных записаны первоначальные координаты первого и второго коня, затем координаты клеток, в которых должны оказаться первый и второй конь соответственно Каждая координата состоит из латинской буквы a-h и цифры 1-8, написанных слитно.

Выходные данные

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

Пример входных данных

a1

с2

c2

a1

Пример выходных данных

 4

1 b3

1 d4

2 a1

1 c2

 

Попытка к бегству - 0

Время на тест - 1 секунда.

Идентификатор для autotest: ol030

Узник пытается бежать из замка, который состоит из MN квадратных комнат, расположенных в виде прямоугольника M×N, между любыми двумя соседними комнатами есть дверь. В начале узник находится в угловой комнате и для спасения ему надо попасть в противоположную угловую комнату. Времени у него немного, всего он может побывать не более, чем в M+N-1 комнате, включая начальную и конечную комнату на своем пути, то есть с каждым переходом в соседнюю комнату расстояние до выхода из замка должно уменьшаться. От вас требуется найти количество различных маршрутов, ведущих к спасению.

Формат входных данных

Первая строчка входных данных содержит натуральные числа M и N, не превосходящих 1000.

Формат выходных данных

Программа должна напечатать количество маршрутов, ведущих узника к выходу и проходящих через M+N-1 комнату.

Входные данные подобраны таким образом, что искомое число маршрутов не превосходит 2.000.000.000.

Пример

Входные данные

2 2

Выходные данные

2

Входные данные

3 4

Выходные данные

10

 

Праздники

Школьная олимпиада по программированию 2005–2006. Младшая лига, тур 4.

ID задачи: a04.

Идентификатор для autotest: ol031.

Время на тест: 1 секунда.

Срок сдачи: вторник, 17 января 2006, 23:59.

Парламент некоторой станы принял новый закон о праздничных днях. Согласно этому закону первые K дней года, а также 23 февраля и 8 марта объявляются праздничными, а все остальные праздники отменяются. При этом все выходные (суббота и воскресенье), попавшие на праздничные дни, переносятся на следующие за этими праздниками рабочие дни.

В зависимости от того, на какой день недели приходится 1 января, количество нерабочих дней, которые могут идти подряд, может меняться.

Требуется опеделить, какое наибольшее количество нерабочих дней может идти подряд.

Формат входных данных

Входные данные содержат единственное число K (1≤K≤50).

Формат выходных данных

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

Примеры

Входные данные

2

Выходные данные

4

Входные данные

10

Выходные данные

16

Маскарад

Задача C Московской городской олимпиады по информатике, 2005 год

Время на тест - 1 секунда.

Идентификатор для autotest: ol032

По случаю введения больших новогодних каникул устраивается великий праздничный бал-маскарад. До праздника остались считанные дни, поэтому срочно нужны костюмы для участников. Для пошивки костюмов требуется L метров ткани. Ткань продается в N магазинах, в которых предоставляются скидки оптовым покупателям. В магазинах можно купить только целое число метров ткани. Реклама магазина номер i гласит "Мы с радостью продадим Вам метр ткани за Pi бурлей, однако если Вы купите не менее Ri метров, то получите прекрасную скидку – каждый купленный метр обойдется Вам всего в Qi бурлей". Чтобы воплотить в жизнь лозунг "экономика страны должна быть экономной", правительство решило потратить на закупку ткани для костюмов минимальное количество бурлей из государственной казны. При этом ткани можно купить больше, чем нужно, если так окажется дешевле. Ответственный за покупку ткани позвонил в каждый магазин и узнал, что:

1) реклама каждого магазина содержит правдивую информацию о ценах и скидках;

2) магазин номер i готов продать ему не более Fi метров ткани.

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

Формат входных данных

В первой строке входного файла записаны два целых числа N и L (1≤N≤100, 0≤L≤100). В каждой из последующих N строк находится описание магазина номер i – 4 целых числа Pi, Ri, Qi, Fi

(1≤Qi≤Pi≤1000, 1≤Ri≤100, 1≤Fi≤100).

Формат выходных данных

Первая строка выходного файла должна содержать единственное число – минимальное необходимое количество бурлей. Во второй строке выведите N чисел, разделенных пробелами, где i-ое число определяет количество метров ткани, которое нужно купить в i-ом магазине. Если в i-ом магазине ткань покупаться не будет, то на i-ом месте должно стоять число 0. Если вариантов покупки несколько, выведите любой из них. Если ткани в магазинах недостаточно для пошивки костюмов, выходной файл должен содержать единственное число -1.

Примеры

Вход                  Выход

2 14                  88

7 9 6 10              10 4

7 8 6 10

———————————————————————————————

1 20                  -1

1 1 1 1

 

Игра в спички

На столе лежит N спичек. Двое играющих по очереди берут со стола 1, 2 или 5 спичек. Выигрывает тот, кто возьмет последнюю спичку. Определите, какой игрок выигрывает при правильной игре.

Формат входных данных

Программа получает на вход единственное число N, 0<N≤1000.

Формат выходных данных

Программа должна вывести единственное число 1 или 2 – номер игрока, у которого есть выигрышная стратегия.

Пример

Вход     Выход 6         2

 

Обобщенная игра в спички

Время на тест – 1 секунда.

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

Формат входных данных

Первая строка входных данных содержит начальное количество спичек N, 0≤N≤106 . Вторая строка содержит число K, 1≤K≤10. Третья строка содержит K натуральных чисел, разделенных пробелами, не превосходящих 106, задающих множество Q – количество спичек, которое игрок может взять со стола за один ход.

Формат выходных данных

Программа должна вывести единственное число 1 или 2 – номер игрока, у которого есть выигрышная стратегия.

Пример

Вход     Выход 6         2 3 1 2 5

 

Числа Фибоначчи

Идентификатор autotest: ol035

Время на тест: 1 секунда.

Последовательность Фибоначчи Fn задается следующим образом:

F0=1

F1=1

Fn=Fn-1+Fn-2.

Начало ряда Фибоначчи выглядит так:

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...

Программа должна по данному n, 0≤n≤40

вычиcлить Fn.

Пример входных данных

10

Пример выходных данных

 89

 

 


Дата добавления: 2021-02-10; просмотров: 608; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!