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

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

Игровое поле представляет собой 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

   Решение

Задачи

Страница: << 47 48 49 50 51 52 53 >> [Всего задач: 277]      



Задача 98792

 [Не составляемое число]
Темы:   [ Прочие задачи на сообразительность ]
[ Двоичный поиск ]
Сложность: 3

Задан массив натуральных чисел P[1:n]. Найти минимальное натуральное число, не представимое суммой никаких элементов массива P. Сумма может состоять и из одного слагаемого, но каждый элемент массива может входить в неё только один раз.

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

Задача 102781

 [Ход конем ]
Темы:   [ Динамическое программирование (прочее) ]
[ Длинная арифметика как инструмент ]
Сложность: 3

Шахматная ассоциация решила оснастить всех своих сотрудников такими телефонными номерами, которые бы набирались на кнопочном телефоне ходом коня. Например, ходом коня набирается телефон 340-49-27. При этом телефонный номер не может начинаться ни с цифры 0, ни с цифры 8.
7 8 9
4 5 6
1 2 3
  0  

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

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

Во входном файле записано целое число N (1 ≤ N ≤ 100).

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

Выведите в выходной файл искомое количество телефонных номеров.

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

2

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

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


Задача 102890

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

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

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



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

В первой строке входного файла содержится число рисок N (1 ≤ N ≤ 20), имеющихся на каждой из первых двух пробирок. Затем в порядке возрастания следуют N целых чисел V1 , ..., VN (1 ≤ Vi ≤ 100), приписанных рискам. Последняя риска считается сделанной на верхнем крае пробирок (VN = 100).

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

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

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

4
13 37 71 100

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

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


Задача 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
Прислать комментарий     Решение


Страница: << 47 48 49 50 51 52 53 >> [Всего задач: 277]      



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

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