ЗАДАЧИ
problems.ru
О проекте | Об авторах | Справочник
Каталог по темам | по источникам |
К задаче N

Проект МЦНМО
при участии
школы 57
Фильтр
Сложность с по   Класс с по  
Выбрана 1 задача
Версия для печати
Убрать все задачи

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

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

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

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

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

Пример входного файла

e2 e3 0 8 1 2 1 1

Пример выходного файла

5 e2 d2 d1 e1 e2 e3

   Решение

Задачи

Страница: << 1 2 3 4 5 6 >> [Всего задач: 28]      



Задача 102948

 [Микрофония ]
Тема:   [ Конечные автоматы ]
Сложность: 4+

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

Очередность выходов артистов на сцену и их уходов за кулисы указывается в режиссерском плане. Кроме того, в этом плане указывается, через какие кулисы выходит (или уходит) артист и поет ли он в данном выходе. 

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

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

Первая строка входного файла содержит целое число N – количество артистов, участвующих в спектакле (1 ≤ N ≤ 1000). Во второй строке записано целое число K – количество выходов артистов на сцену (1 ≤ K ≤ 3000). Далее идут 2K строк, описывающих режиссерский план спектакля. Каждая из них содержит четверку AiBiCiDi (1 ≤ i ≤ 2K):
Ai – символ +, если в данный момент артист выходит на сцену, или символ -, если артист со сцены уходит;
Bi – номер артиста (целое число от 1 до N);
Ci – символ Л, если артист выходит (уходит) через левые кулисы, или символ П, если он выходит (уходит) через правые кулисы;
Di – символ Д, если артист поет в данном выходе (пел перед данным уходом), или символ Н, если он не поет (не пел).

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

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

Пример входного файла

3
4
+ 1 Л Д
- 1 Л Д
+ 2 Л Н
+ 3 Л Н
- 3 П Н
+ 1 П Д
- 1 Л Д
- 2 П Н

Пример выходного файла

1 0
1
0
1
1
Прислать комментарий     Решение


Задача 102891

 [Катаем кубик ]
Темы:   [ Построение перечислителя ]
[ Кратчайшие пути в графах ]
Сложность: 3+

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

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

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

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

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

Пример входного файла

e2 e3 0 8 1 2 1 1

Пример выходного файла

5 e2 d2 d1 e1 e2 e3
Прислать комментарий     Решение


Задача 102922

 [Идем кругами ]
Темы:   [ Перебор с отсечениями ]
[ Эйлеров цикл ]
Сложность: 3+

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

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

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

Входной файл содержит исходные данные в следующей последовательности: N, x1, x2, ..., xN, b, q, M, u1, v1, u2, v2, ..., uM, vM. Здесь N – количество кружков (1 ≤ N ≤ 30), xi – стоимость, приписанная i-му кружку (1 ≤ xi ≤ 30 000), b и q – номера начального и конечного кружков (они могут совпадать), M – количество отрезков, ui и vi – номера кружков, соединяемых i-м отрезком (направление стрелки – от ui к vi). Два кружка могут быть соединены не более чем одним отрезком. Все числа во входном файле являются целыми и разделяются пробелами и/или символами перевода строки.

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

Вывести в выходной файл искомое количество очков и номера кружков, по которым должен пройти игрок, чтобы набрать это количество. Номера кружков должны быть записаны в порядке их посещения игроком. Если пройти из начального кружка в конечный, удовлетворяя правилам игры, невозможно, выходной файл должен содержать единственную строку «NO SOLUTION».

Пример входного файла

5 1 3 5 100 23
1 4
5
1 2
2 3
5 3
2 5
4 2

Пример выходного файла

-72
1 2 5 3 2 4
Прислать комментарий     Решение


Задача 102942

 [Кратчайший путь в квадрате]
Темы:   [ Прямая и отрезок ]
[ Кратчайшие пути в графах ]
Сложность: 3+

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

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

В первой строке входного файла содержится целое число N (1 ≤ N ≤ 30), в каждой следующих N строк – координаты левого нижнего угла (x, y) очередного из квадратиков (0 ≤ x, y ≤ 95).

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

Выведите в выходной файл координаты точек искомого пути, в которых меняется направление движения (включая начальную и конечную точки). Порядок точек в выходном файле должен соответствовать порядку точек в пути.

Пример входного файла

5
5 5
5 15
15 10
15 20
90 90

Пример выходного файла

0 0
5 10
20 20
95 90
100 100
Прислать комментарий     Решение


Задача 102888

 [Золотая лихорадка ]
Темы:   [ Динамическое программирование (прочее) ]
[ Обход графа в ширину ]
Сложность: 4

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

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

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

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

В первой строке входного файла записано целое число K – количество различных веществ, участвующих и образующихся в алхимических реакциях (2 ≤ K ≤ 100). Вторая строка содержит названия этих веществ, разделенные пробелом (в списке обязательно есть свинец и золото). Названия веществ не длиннее 10 букв. 

В третьей строке записано целое число L – количество типов реакций, выполняемых философским камнем (1 ≤ L ≤ 100). Далее идут L описаний этих реакций. Каждое описание реакции состоит из двух строк: первая строка содержит название вещества, которое подвергается превращению, вторая – названия веществ, получающихся в результате реакции.

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

Ваша программа должна вывести в выходной файл либо одно целое число – искомое количество граммов золота, либо сообщение «QUANTUM SATIS» (лат. "Сколько нужно"), если Петя может получить любое наперед заданное количество золота.

Пример входного файла

4
свинец золото рога копыта
3
свинец
золото рога копыта
рога
золото копыта
копыта
золото

Пример выходного файла

4
Прислать комментарий     Решение


Страница: << 1 2 3 4 5 6 >> [Всего задач: 28]      



© 2004-... МЦНМО (о копирайте)
Пишите нам

Проект осуществляется при поддержке Департамента образования г.Москвы и ФЦП "Кадры" .