Задачи олимпиады 2011

Автор: admin Опубликовано: Дек 27, 2011 В рубрике: Олимпиада

Зolimp1.JPGадачи 7-8 класс

Задача 1. Счастливый билет.

 

В городе Малом используются билеты для проезда в общественном транспорте. Билеты продаются в специальных кассах и имеют шестизначные номера. Номер считается счастливым, если сумма числа, состоящего из первых трех цифр номера, с числом, состоящим из последних трех цифр номера, будет состоять из одинаковых цифр. Например, если Вам достался билет с номером 132423, то Вы счастливчик, т.к. 132 + 423 = 555.

Требуется написать программу, которая определяет, является ли номер билета счастливым.

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

Входной файл содержит шестизначное число.

Имя входного файла:

input.txt

Имя выходного файла:

output.txt

Максимальное время работы на одном тесте:

2 секунды

Максимальный объем используемой памяти:

64 мегабайта

Максимальная оценка:

100 баллов

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

Выходной файл содержит число 1, если билет счастливый, и число 0 в противном случае.

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

input.txt

output.txt

123321

1

111999

0

 

Задача 2. Лестница

Имя входного файла:

input.txt

Имя выходного файла:

output.txt

Максимальное время работы на одном тесте:

2 секунды

Максимальный объем используемой памяти:

64 мегабайта

Максимальная оценка:

100 баллов

 

Чебурашка бежит вприпрыжку по лестнице вниз, начиная с самой верхней ступеньки до самой нижней. Всего на лестнице N ступенек. Он иногда перепрыгивает через ступеньку, иногда через две, а иногда даже через три. А Гена перед этим на каждой ступеньке написал число в диапазоне от 1 до 1000 включительно. Кроме того, в образовательных целях Гена дал Чебурашке задание: найти минимальное число среди чисел, написанных на ступеньках, на которые Чебурашка наступал во время спуска по лестнице.

Требуется написать программу, которая находит этот же минимум.

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

Первая строка входного файла содержит два целых числа N (2 £ N £100) и M (1 £ M £N1). Вторая строка содержит N целых чисел, которые Гена написал на ступеньках лестницы. Первое из этих чисел соответствует верхней ступеньке, а последнее нижней ступеньке. Третья строка содержит M целых чисел, каждое из которых равно 1,2,3 или 4. Первое из этих чисел означает длину первого прыжка Чебурашки с первой ступеньки, второе число означает длину второго прыжка и т.д. Входные данные всегда корректны (участник не должен это проверять!) в том смысле, что сумма чисел во второй строке равна N–1, т.е. Чебурашка, начиная с первой ступеньки, всегда закончит спуск на последней.

Числа во всех строках разделены одинарными пробелами.

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

Выходной файл содержит целое число, которое означает минимальное значение, которое встретил Чебурашка на ступеньках лестницы.

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

input.txt

output.txt

5 4

131 71 12 15 6

1 1 1 1

6

10 5

13 7 1 18 6 60 7 81 4 117

1 3 3 1 1

4

 

Задача 3. Космический бой.

Имя входного файла:

input.txt

Имя выходного файла:

output.txt

Максимальное время работы на одном тесте:

2 секунды

Максимальный объем используемой памяти:

64 мегабайта

Максимальная оценка:

100 баллов

 

В игре «Космический бой» соперничают два игрока. У каждого есть космический флот, состоящий из одинаковых кораблей, но у каждого игрока это свои корабли. У первого игрока N1 кораблей, у второго – N2. Корабли характеризуется тремя параметрами: атака, максимальное количество «очков жизни», починка. У первого игрока атака всех кораблей равна A1, максимальное количество «очков жизни» равно H1, параметр починка равен R1, а у второго A2, H2, R2 соответственно. При этом выполняются неравенства: H1, > R1, H2, > R2. Корабли у игроков занумерованы. У первого игрока от 1 до N1 и от 1 до N2 для второго.

Бой состоит из поочередных ходов обоих игроков, начинает первый игрок.

Процесс хода состоит из 2 этапов: починка и атака. Во время починки корабль, у которого «очков жизни» после атаки противника осталось меньше максимума «очков жизни» (такой корабль может быть только один, см ниже) восстанавливает столько «очков жизни», каков параметр починки, но его «очки жизни» не должны превысить максимальное количество «очков жизни». Атака состоит из последовательных выстрелов не уничтоженных кораблей атакующей стороны по кораблям защищающейся стороны. Атакующие корабли стреляют сначала по первому кораблю противника, если оказалось что он уже уничтожен, то по второму и т.д. При выстреле у корабля защищающейся стороны снимается столько «очков жизни», каков параметр атаки у кораблей атакующего игрока. Корабль считается уничтоженным, если у него осталось «очков жизни» меньше чем у корабля, который его атакует. Таким образом, к концу своего хода игрок уничтожает некоторое количество кораблей противника и, возможно, один корабль остается раненым. Если кораблей противника больше нет, то победил тот игрок, чей в этот момент ход.

Рассмотрим пример. Пусть N1 = 10, A1 = 1, H1 = 50, R1=2, N2 = 3, A2 = 20, H2 = 30, R2=3. Во время первого ходя 10 кораблей первого игрока наносят урон по первому кораблю второго, и у того остается 20 «очков жизни». Теперь ход второго игрока. Его раненный корабль чинится до 23 «очков жизни» и он атакует первый корабль противника своими 3 кораблями. Первые два наносят 40 единиц урона, что не достаточно для уничтожения, значит, третий корабль тоже стреляет по первому кораблю первого игрока. Один корабль первого игрока уничтожен, но другие не пострадали. Ход переходит к первому игроку и т. д.

В игре возможна ничья, когда оба игрока больше не могут уничтожить ни одного корабля друг у друга.

Требуется написать программу, которая определяет победителя в игре «Космический бой».

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

Входной файл состоит из двух строк. Первая строка входного файла содержит целые числа N1, A1, H1, R1. Вторая строка входного файла содержит целые числа N2, A2, H2, R2.

Все числа во входном файле положительны и не превосходят числа 100. Числа во всех строках разделены одинарными пробелами.

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

Выходной файл содержит число 1, если выиграл первый игрок, число 2, если выиграл второй игрок и число 0, если игра была сыграна в ничью.

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

input.txt

output.txt

1 10 20 19

1 100 10 9

1

2 10 40 30

3 10 30 20

0

 

Задачи 9-11 класс

Задача 1. Лестница.

Имя входного файла:

input.txt

Имя выходного файла:

output.txt

Максимальное время работы на одном тесте:

2 секунды

Максимальный объем используемой памяти:

64 мегабайта

Максимальная оценка:

100 баллов

 

Чебурашка бежит вприпрыжку по лестнице вниз, начиная с самой верхней ступеньки до самой нижней. Он иногда перепрыгивает через ступеньку, иногда через две, а иногда даже через три. А Гена перед этим на каждой ступеньке написал число в диапазоне от 1 до 1000. Кроме того, в образовательных целях Гена дал Чебурашке задание: найти минимальное число среди чисел, написанных на ступеньках, на которые Чебурашка наступал во время спуска по лестнице.

Требуется написать программу, которая находит этот же минимум.

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

Первая строка входного файла содержит два целых числа N (1 £ N £100) и M (1 £ M £100). Вторая строка содержит N целых чисел, которые Гена написал на ступеньках лестницы. Первое из этих чисел соответствует верхней ступеньке, а последнее нижней ступеньке. Третья строка содержит M целых чисел, каждое из которых равно 1,2,3 или 4. Первое из этих чисел означает длину первого прыжка Чебурашки с первой ступеньки, второе число означает длину второго прыжка и т.д. Входные данные всегда корректны (участник не должен это проверять!) в том смысле, что сумма чисел во второй строке равна N–1, т.е. Чебурашка, начиная с первой ступеньки, всегда закончит спуск на последней.

Числа во всех строках разделены одинарными пробелами.

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

Выходной файл содержит целое число, которое означает минимальное значение, которое встретил Чебурашка на ступеньках лестницы.

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

input.txt

output.txt

5 4

131 71 12 15 6

1 1 1 1

6

10 5

13 7 1 18 6 60 7 81 4 117

1 3 3 1 1

4

 

Задача 2. Космический бой.

Имя входного файла:

input.txt

Имя выходного файла:

output.txt

Максимальное время работы на одном тесте:

2 секунды

Максимальный объем используемой памяти:

64 мегабайта

Максимальная оценка:

100 баллов

 

В игре «Космический бой» соперничают два игрока. У каждого есть космический флот, состоящий из одинаковых кораблей, но у каждого игрока это свои корабли. У первого игрока N1 кораблей, у второго – N2. Корабли характеризуется тремя параметрами: атака, максимальное количество «очков жизни», починка. У первого игрока атака всех кораблей равна A1, максимальное количество «очков жизни» равно H1, параметр починка равен R1, а у второго A2, H2, R2 соответственно. При этом выполняются неравенства: H1, > R1, H2, > R2. Корабли у игроков занумерованы. У первого игрока от 1 до N1 и от 1 до N2 для второго.

Бой состоит из поочередных ходов обоих игроков, начинает первый игрок.

Процесс хода состоит из 2 этапов: починка и атака. Во время починки корабль, у которого «очков жизни» после атаки противника осталось меньше максимума «очков жизни» (такой корабль может быть только один, см ниже) восстанавливает столько «очков жизни», каков параметр починки, но его «очки жизни» не должны превысить максимальное количество «очков жизни». Атака состоит из последовательных выстрелов не уничтоженных кораблей атакующей стороны по кораблям защищающейся стороны. Атакующие корабли стреляют сначала по первому кораблю противника, если оказалось что он уже уничтожен, то по второму и т.д. При выстреле у корабля защищающейся стороны снимается столько «очков жизни», каков параметр атаки у кораблей атакующего игрока. Корабль считается уничтоженным, если у него осталось «очков жизни» меньше чем у корабля, который его атакует. Таким образом, к концу своего хода игрок уничтожает некоторое количество кораблей противника и, возможно, один корабль остается раненым. Если кораблей противника больше нет, то победил тот игрок, чей в этот момент ход.

Рассмотрим пример. Пусть N1 = 10, A1 = 1, H1 = 50, R1=2, N2 = 3, A2 = 20, H2 = 30, R2=3. Во время первого ходя 10 кораблей первого игрока наносят урон по первому кораблю второго, и у того остается 20 «очков жизни». Теперь ход второго игрока. Его раненный корабль чинится до 23 «очков жизни» и он атакует первый корабль противника своими 3 кораблями. Первые два наносят 40 единиц урона, что не достаточно для уничтожения, значит, третий корабль тоже стреляет по первому кораблю первого игрока. Один корабль первого игрока уничтожен, но другие не пострадали. Ход переходит к первому игроку и т. д.

В игре возможна ничья, когда оба игрока больше не могут уничтожить ни одного корабля друг у друга.

Требуется написать программу, которая определяет победителя в игре «Космический бой».

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

Входной файл состоит из двух строк. Первая строка входного файла содержит целые числа N1, A1, H1, R1. Вторая строка входного файла содержит целые числа N2, A2, H2, R2.

Все числа во входном файле положительны и не превосходят числа 100. Числа во всех строках разделены одинарными пробелами.

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

Выходной файл содержит число 1, если выиграл первый игрок, число 2, если выиграл второй игрок и число 0, если игра была сыграна в ничью.

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

input.txt

output.txt

1 10 20 30

1 100 10 100

1

2 10 40 30

3 10 30 20

100 20

150 60

0

 

Задача 3. Игра великанов.

Имя входного файла:

input.txt

Имя выходного файла:

output.txt

Максимальное время работы на одном тесте:

2 секунды

Максимальный объем используемой памяти:

64 мегабайта

Максимальная оценка:

100 баллов

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

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

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

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

Входной файл в первой строке содержит целое число N (3  N £500). В следующих N строках описывается первая позиция. В строках с номерами от 2 до N+1 содержится по N целых чисел, разделенных пробелами. Каждое число в этих строках равно либо 0 (черная сторона диска), либо 1 (белая сторона диска).

В следующих N строках описывается вторая позиция. В строках с номерами от N+2 до 2*N+1 содержится по N целых чисел, разделенных пробелами. Каждое число в этих строках равно либо 0 (черная сторона диска), либо 1 (белая сторона диска).

Числа во всех строках разделены одинарными пробелами.

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

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

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

input.txt

output.txt

4

1 0 0 0

1 0 0 0

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

1 3

3

1 1 1

1 1 1

1 1 1

1 1 0

1 1 1

0 1 1

0

 

<

Вы можете обсудить этот пост комментариях или в нашем чате, который находится в верхнем правом углу сайта. Если вы не знаете как общаться в чате, то скорее жмите СЮДА! Приятного Вам общения :)

Прокомментировать

Copyright © 2018 Урок информатики All rights reserved.
Тема доработана интернет студией SMOpro, специализация которой реклама в блогах.