Страница: 1 2 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Недавно Петя начал играть в шахматы.

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

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

Фигуры ходят следующим образом:

король - на любую соседнюю по вертикали, горизотнали или диагонали клетку;

ферзь - на любое расстояние по вертикали, горизонтали или диагонали;

ладья - на любое расстояние по вертикали или горизонтали;

слон - на любое расстояние по диагонали;

конь - в форме буквы "Г": на 1 клетку по горизонтали и на 2 по вертикали, или наоборот, на 1 клетку по вертикали и 2 по горизонтали.

Вам даны позиции одной белой и одной черной фигуры.

Определите, бьют ли фигуры друг друга, и, если бьют, выведите какая из них бьет какую.

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

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

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

B - слон, N - конь, R - ладья, Q - ферзь, K - король.

Второй символ задает горизонталь (от \(a\) до \(h\)). Третий символ задает вертикаль (от 1 до 8).

Гарантируется, что фигуры стоят на различных клетках шахматной доски.

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

В выходной файл выведите одно слово - ответ на задачу.

В случае, если ни одна фигура не бьет другую, выведите "NONE".

В случае, если обе фигуры бьют друг друга, выведите "BOTH".

В случае, если белая фигура бьет черную, а черная не бьет белую, выведите "WHITE".

В случае, если черная фигура бьет белую, а белая не бьет черную, выведите "BLACK".

Примеры
Входные данные
Ka1
Rg1
Выходные данные
BLACK
Входные данные
Qf3
Qh5
Выходные данные
BOTH
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

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

Благодаря накопленной информации, Ася может во время трансляции матча сообщить какую-нибудь интересную статистику, например: "Индзаги третий матч подряд забивает гол на 9-й минуте" или "Матерацци никогда не открывает счет в матче".

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

Информация о матче сообщается программе в следующей форме:

"Название 1-й команды" - "Название 2-й команды" Счет 1-й команды:Счет 2-й команды

Автор 1-го забитого мяча 1-й команды Минута, на которой был забит мяч'

Автор 2-го забитого мяча 1-й команды Минута, на которой был забит мяч'

...

Автор последнего забитого мяча 1-й команды Минута, на которой был забит мяч'

Автор 1-го забитого мяча 2-й команды Минута, на которой был забит мяч'

...

Автор последнего забитого мяча 2-й команды> <Минута, на которой был забит мяч>'

Запросы к программе бывают следующих видов:

Total goals for Название команды

- количество голов, забитое данной командой за все матчи.

Mean goals per game for Название команды

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

Total goals by Имя игрока

- количество голов, забитое данным игроком за все матчи.

Mean goals per game by Имя игрока

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

Goals on minute Минута by Имя игрока

- количество голов, забитых данным игроком ровно на указанной минуте матча.

\texttt{Goals on first <\(T\)> minutes by <Имя игрока>}\\ --- количество голов, забитых данным игроком на минутах с первой по \(T\)-ю включительно.

Goals on last \(T\) minutes by Имя игрока

- количество голов, забитых данным игроком на минутах с \((91 - T)\)-й по 90-ю включительно.

Score opens by Название команды

- сколько раз данная команда открывала счет в матче.

Score opens by Имя игрока

- сколько раз данный игрок открывал счет в матче.

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

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

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

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

Минута, на которой забит гол - целое число от 1 до 90 (про голы, забитые в дополнительное время, принято говорить, что они забиты на 90-й минуте).

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

Количество запросов во входном файле не превышает 500.

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

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

Примеры
Входные данные
"Juventus" - "Milan" 3:1
Inzaghi 45'
Del Piero 67'
Del Piero 90'
Shevchenko 34'
Total goals for "Juventus"
Total goals by Pagliuca
Mean goals per game by Inzaghi
"Juventus" - "Lazio" 0:0
Mean goals per game by Inzaghi
Mean goals per game by Shevchenko
Score opens by Inzaghi
Выходные данные
3
0
1.0
0.5
1.0
0
Входные данные
Total goals by Arshavin
Выходные данные
0
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

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

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

Найдите наибольшую правильную несократимую дробь, у которой сумма числителя и знаменателя равна \(n\).

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

Во входном файле записано одно целое число \(n\) (\(3\le n\le 1000\)).

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

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

Примеры
Входные данные
10
Выходные данные
3 7
Входные данные
23
Выходные данные
11 12
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Антон - большой любитель компьютерных игр. Совсем недавно вышла новая игра Heroes of Keyboard and Mouse, и он, конечно же, сразу ее купил и установил на свой компьютер. Эта игра относится к жанру квестов, и поэтому ее прохождение сводится к последовательному выполнению ряда заданий (квестов).

Один из квестов, над которым Антон бьется уже не первый день состоит в том, что требуется открыть замок. Замок состоит из \(n\) шестеренок, стоящих в ряд - \(i\)-ая из шестеренок имеет \(s_i\) зубцов, на каждом из которых написано число от \(0\) до \(s_i - 1\). Первая шестеренка зацеплена только со второй, вторая зацеплена с первой и третьей, третья - со второй и четвертой, ..., \((n-1)\)-ая - с \((n-2)\)-ой и \(n\)-ой, \(n\)-ая только с \((n-1)\)-ой.

На замке имеется \(n\) окошечек и \(n\) ручек - в \(i\)-ое окошко можно видеть число, написанное на одном из зубцов \(i\)-ой шестеренки, а с помощью \(i\)-ой ручки можно поворачивать \(i\)-ую шестеренку. При этом числа на шестеренках расположены таким образом, что если до поворота \(i\)-ой из них по часовой стрелке на одно деление в \(i\)-ом окошке было видно число \(x\), то после поворота будет видно число \((x+1) \bmod s_i\). Аналогично, после поворота против часовой стрелки на одно деление вместо числа \(x\) будет видно число \((x-1+s_i) \bmod s_i\). Разумеется, если шестеренку повернуть по часовой стрелке, то непосредственно зацепленные с ней шестеренки повернутся против часовой стрелки, и наоборот, если шестеренку повернуть против часовой стрелки, то они повернутся по часовой стрелке. Слева на рис.1 показано положение шестеренок до поворота первой из них по часовой стрелке, справа на рис. 1 показано положение шестеренок после указанного поворота. Более толстыми линиями нарисован тот зубец шестеренки, число на котором видно в соответствующее окошко замка.

Изначально замок находится в состоянии, в котором в \(i\)-ое окошко видно число \(a_i\). Для того, чтобы его открыть, необходимо перевести его в состояние, в котором в \(i\)-ое окошко видно число \(b_i\).

С помощью \(i\)-ой ручки можно поворачивать \(i\)-ую шестеренку. Разумеется, если повернуть \(i\)-ую шестеренку, то придут в движение и все шестеренки, с которыми она соединена - напрямую или через другие шестеренки. Поворот любой шестеренки на одно деление занимает одну секунду. Кроме этого, если \(i\)-ая шестеренка находится в таком состоянии, что в \(i\)-ое окошко видно число \(b_i\) (то есть, она находится в положении, соответствующем требуемому состоянию замка), то ее можно вдавить, нажав на ее ручку. В результате этого \(i\)-ая шестеренка перестает быть соединенной с \((i-1)\)-ой и \((i+1)\)-ой (если, конечно, они существуют). Вдавленная шестеренка остается в таком состоянии навсегда. На то, чтобы нажать на ручку и вдавить шестеренку требуется \(k\) секунд. На рис. 2 слева показано положение шестеренок до вдавливания второй из них, а справа - после вдавливания и после поворота первой по часовой стрелке, а третьей - против. Отметим, что после вдавливания второй шестеренки первая и третья вращаются независимо друг от друга.

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

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

Первая строка входного файла содержит два целых числа: \(n\) и \(k\) (\(1 \le n \le 25\), \(1 \le k \le 100\)). Вторая строка входного файла содержит \(n\) чисел: \(s_1\), \(s_2\), ..., \(s_n\) - размеры шестеренок. Все \(s_i\) - целые числа от 3 до 10. Третья строка входного файла содержит \(n\) целых чисел \(a_1\), \(a_2\), ..., \(a_n\) - начальные положения шестеренок (для всех \(a_i\) выполняются неравенства \(0 \le a_i < s_i\)). Четвертая строка входного файла содержит \(n\) целых чисел \(b_1\), \(b_2\), ..., \(b_n\) - требуемые положения шестеренок (для всех \(b_i\) выполняются неравенства \(0 \le b_i < s_i\)).

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

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

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

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

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

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

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

Первая строка входного файла содержит два целых числа n и m — размеры трассы (2 ≤ m, n ≤ 20). Следующие n строк содержат по m символов каждая: символ «.» соответствует пустой клетке, «#» — препятствию, а «S» и «T» — клетке старта и клетке финиша соответственно.

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

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

Если доехать от старта до финиша невозможно, выведите  - 1.

Примеры
Входные данные
5 5
S#..T
.#.##
.....
.##.#
.#...
Выходные данные
6

Страница: 1 2 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест