Темы --> Информатика
    Язык программирования(952 задач)
    Алгоритмы(1657 задач)
    Структуры данных(279 задач)
    Интерактивные задачи(17 задач)
    Другое(54 задач)
---> 544 задач <---
Страница: << 63 64 65 66 67 68 69 >> Отображать по:

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

А именно (правила применяются строго в указанном порядке):

  • Школьники, которые знают материал на 5, будут писать контрольную самостоятельно.
  • Школьник, который знает материал на 4, если он сидит рядом с тем, кто знает на 5, будет списывать у него, а в противном случае будет писать самостоятельно.
  • Школьник, который знает на 3, если он сидит рядом с тем, кто знает на 5, будет списывать у него. Если среди его соседей знающего на 5 нет, но есть тот, кто знает на 4, и при этом пишет самостоятельно, то троечник будет списывать у него. В противном случае будет писать самостоятельно.
  • Аналогично школьник, знающий на 2 — из соседей, которые пишут самостоятельно, выберет того, кто знает лучше, и спишет у него. А если таких нет (или оба его соседа также знают на 2), то будет писать самостоятельно.

Определите, кто какую оценку в итоге получит.

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

Вводится число N (1<=N<=10) - количество учеников, и далее последовательность из N чисел, описывающая, кто на какую оценку может написать контрольную, если будет писать самостоятельно.

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

Выведите N чисел - оценки, которые получат ученики за контрольную.

Примечания к примерам тестов

1. Первый и пятый ученики будут писать самостоятельно. Второй спишет у первого, а четвертый — у пятого (в итоге также получат пятерки). Третьему не у кого списывать, так как его соседи будут писать работу не самостоятельно.

2. Второй и четвертый спишут у третьего, пятый — у шестого.

Примеры
Входные данные
5
5
2
3
4
5
Выходные данные
5
5
3
5
5
Входные данные
6
2
2
3
2
2
4
Выходные данные
2
3
3
3
4
4
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Рассмотрим последовательности чисел. Первая последовательность состоит из одного числа K. Каждая следующая последовательность чисел описывает предыдущую по такому правилу.

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

Например, для K=2 последовательности получатся такими:

Последовательность Как ее читать (слова в описании соответствуют числам текущей последовательности слева направо, и описывают предыдущую последовательность)
1 2 Исходная последовательность
2 1 2 Одна «двойка»
3 1 1 1 2 Одна «единица», одна «двойка»
4 3 1 1 2 Три «единицы», одна «двойка»
5 1 3 2 1 1 2 Одна «тройка», две «единицы», одна «двойка»
6 1 1 1 3 1 2 2 1 1 2 Одна «единица», одна «тройка», одна «двойка», две «единицы», одна «двойка»

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

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

Вводится число K (1 ≤ K ≤ 9) и число N (1 ≤ N ≤ 15).

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

Ваша программа должна печатать N-ую последовательность, полученную из начальной последовательности, состоящей из одного числа K. Числа при выводе следует разделять пробелами.

Примеры
Входные данные
2
6
Выходные данные
1 1 1 3 1 2 2 1 1 2 
Входные данные
2
1
Выходные данные
2 
Входные данные
1
3
Выходные данные
2 1 

Про три числа (обозначенных a, b, c) известны все результаты сравнения их друг с другом. Требуется расположить эти числа в порядке возрастания.

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

Вводятся три строки. В первой записан результат сравнения между собой чисел a и b в следующем формате. Первый символ — всегда a, третий символ — b (соответствующие маленькие латинские буквы), а между ними записан один из символов >, < или =. Во второй строке в таком же формате записан результат сравнения a и с (первый символ всегда a, третий — c), а в третьей строке — результат сравнения b и c (первый символ всегда b, третий — c). Гарантируется, что входные данные не противоречивы.

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

Выведите символы a, b, c в порядке величины соответствующих им чисел — каждое следующее число должно быть больше либо равно предыдущему. Если два числа равны между собой, соответствующие переменные могут быть выведены в любом порядке. Символы должны быть выведены в одной строке без пробелов и других разделителей.

Примечание

Во втором примере ответ cba также является верным. Обратите внимание, если вариантов ответа несколько — не нужно выводить их все, ваша программа должна вывести ровно один вариант ответа.

Примеры
Входные данные
a>b
a>c
b>c
Выходные данные
cba
Входные данные
a=b
a>c
b>c
Выходные данные
cab
cba
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

В тактике футбола одним из основных понятий является схема игры. Она определяет, сколько из десяти полевых игроков будут играть в защите, сколько — в полузащите и сколько — в нападении.

Например, схема игры 5-3-2 означает, что в команде пять защитников, три полузащитника и два нападающих. В соответствии с современными представлениями на схему игры накладываются следующие ограничения: должно быть не менее одного и не более пяти защитников, не менее одного и не более пяти полузащитников и не более трех нападающих. Отметим, что нападающих может в команде и не быть совсем. Будем рассматривать только такие схемы.

Будем считать, что футбольное поле имеет длину 120 метров и ширину 80 метров. Введем на нем прямоугольную декартову систему координат таким образом, как показано на рисунке. Ворота рассматриваемой нами команды находятся слева.

Будем также считать, что игрок в некоторый момент времени находится в линии полузащиты, если он находится на расстоянии не более 20 метров от центральной линии. Соответственно, игрок находится в линии защиты, если он находится не более чем в 40 метрах от «своей» лицевой линии, и в линии нападения, если находится не более чем в 40 метрах от «чужой» лицевой линии.

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

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

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

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

Входной файл содержит десять строк, содержащих по два целых числа xi и yi каждая, — координаты каждого из игроков команды (0 xi 120, xi 40, xi 80, 0 yi 80).

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

В первой строке выходного файла выведите k — число схем игры, по которым может играть команда. В последующих k строках в произвольном порядке выведите описание каждой из этих схем. Следуйте формату данных, приведенному в примере.

Примеры
Входные данные
97 0
13 18
2 6
119 11
42 21
72 80
75 78
106 45
22 67
28 47
Выходные данные
9
2-5-3
3-5-2
3-4-3
4-5-1
4-4-2
4-3-3
5-4-1
5-3-2
5-2-3

Компания Macrohard выпустила в свет новую версию операционной системы «Frames» («Рамки») и теперь стремится внедрить ее на рынок информационных технологий. Каждая фирма, заказывающая новую версию «Рамок», получает лицензионные ключи от компании Macrohard по следующим правилам:

  • каждой копии присваивается уникальный 25-разрядный ключ, состоящий из цифр и заглавных букв латинского алфавита. Код разбивается на группы по 5 символов, которые разделяются между собой знаком «-»
  • по каждому ключу можно вычислить его контрольную сумму по следующему правилу: необходимо сложить веса значащих символов и взять остаток от деления этой суммы на некое число P, где вес символа есть
    • значение цифры, если символ является цифрой (то есть вес цифры 5 равен пяти)
    • порядковый номер буквы в латинском алфавите плюс 9 (то есть вес буквы F равен 15)
Например, для кода 12345-12345-12345-12345-12345 при P = 11 контрольная сумма равна (1+2+3+4+5)*5 mod 11 = 9
  • контрольная сумма является идентификатором фирмы, которая покупает операционные системы, следовательно, оно должно быть различным для разных юридических лиц.

Операционной системой заинтересовался один влиятельный человек, пожелавший установить ее на свой персональный компьютер. Вам, как работнику отдела лицензирования Macrohard, поручено сгенерировать новый ключ, который не только не повторяется с выданными ранее ключами, но и обладает новой (не используемой ранее) контрольной суммой. Требуется написать программу, которая решает эту задачу.

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

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

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

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

Ввод
Вывод
3 5
23545-14978-59345-87926-52496
67955-58818-19438-55659-02068
99185-57241-15114-39158-36125
01389-28172-62843-79648-28129
5 3
BGPOV-D618J-FTN7L-4QWZJ-E6P8S
7K3J3-I8076-58COS-0066F-9UAT4
7S17C-YI099-1UC85-5S9PB-772LT
TN2I4-TC1Z6-1OLI6-LT43G-9JMD3
73OQ3-A9NBJ-N7UT7-AI349-XYJDT
1APMP-RSO53-G743I-F5TK6-R6487
5 4
7911L-5D41U-0N09C-34T16-5D0KI
FRLAX-RE1Y1-WFVU0-88R56-C5D4V
RUG51-IR00T-8L812-R6056-7OM59
804F2-L7292-I12PX-14NDO-02LEW
J3QQ4-H7H2V-2HCH4-M3HK8-6M8VW
Impossible

Страница: << 63 64 65 66 67 68 69 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест