Темы
    Информатика(2656 задач)
---> 228 задач <---
    2003(8 задач)
    2004(9 задач)
    2005(10 задач)
    2006(10 задач)
    2007(19 задач)
    2008(19 задач)
    2009(18 задач)
    2010(18 задач)
    2011(18 задач)
    2012(19 задач)
    2013(19 задач)
    2014(20 задач)
    2015(21 задач)
    2016(20 задач)
Страница: << 31 32 33 34 35 36 37 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Скоро у Лизы день рождения! Родители долго думали, чем порадовать свою любимую дочку, и решили, что лучше всего подарить ей путешествие в Нью-Йорк. Ведь это — такой оригинальный подарок! Так как Лиза — уже самостоятельная девочка, она вполне может сама выбрать, где ей поселиться в Нью-Йорке. Однако родители очень беспокоятся за нее, поэтому они разрешили ей выбирать только из H безопасных пятизвездочных отелей.

Лиза — общительная девочка, и у неё очень много друзей. Узнав, что она будет отмечать день рождения в Нью-Йорке, друзья немедленно отправились туда и поселились в C хостелах.

Лиза по случаю дня рождения устраивает маленькую вечеринку. К сожалению, никто из её друзей не хочет пропустить очередную серию нового реалити-шоу «Home-2», но как только серия закончится, все они одновременно выйдут из своих хостелов и поедут поздравлять Лизу. Она — девочка нетерпеливая, поэтому хочет выбрать отель так, чтобы последний друг приехал к ней как можно раньше, т.е. находился как можно ближе. Так как она тоже не хочет отвлекаться от просмотра высокоинтеллектуального шоу, она попросила вас помочь ей с выбором отеля. Конечно, за это она тоже пригласит вас на вечеринку!

Как известно, Нью-Йорк представляет собой идеальную прямоугольную сетку улиц: с севера на юг тянутся N авеню, а с запада на восток — M улиц. Наличием Бродвея мы в этой задаче пренебрежем. Можно считать, что каждый объект находится в узле этой сетки (и, таким образом, однозначно задается номером авеню и номером улицы, возле пересечения которых он расположен), а два соседних узла сетки находятся на расстоянии одного километра.

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

В первой строке входных данных содержится два числа N и M — размеры города ( 1 ≤ N , M ≤ 1000 ). В следующей строке содержится единственное число C — количество хостелов ( 1 ≤ C ≤ 1000 ). Далее в C строках содержатся описания хостелов, каждый из них задается двумя координатами x и y ( 1 ≤ x N , 1 ≤ y M ). В следующей строке содержится одно число H — количество безопасных отелей ( 1 ≤ H ≤ 1000 ). В следующих строках содержатся описания отелей, в том же формате, что и хостелы.

Отель и хостел могут располагаться возле одного и того же перекрестка.

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

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

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

Как-то раз удав, слонёнок, мартышка и попугай играли в замечательную игру <<змейка>>.

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

Как известно, измерять длину удава можно в слонятах, мартышках или попугаях. Но в попугаях удав выходит гора-а-а-здо длиннее, поэтому мы остановимся на них в качестве единицы измерения. Поле представляет собой прямоугольную сетку из \)10\( строк по \)10\( ячеек размером \)1\( попугай \)\times\( \)1\( попугай. Изначально длина удава составляет всего три попугая (каким образом удав становится таким коротким в начале игры - долгая и запутанная история, поэтому мы не будем на ней останавливаться в рамках этой задачи), он занимает три крайних левых ячейки в верхней строке поля и смотрит направо. Каждый раз, съедая яблоко, удав удлиняется на одного попугая и занимает, таким образом, ещё одну клетку поля.

Более формально, удав длины \)L\( попугаев представляет собой последовательность из \)L\( различных клеток поля \)A_1, A_2, \ldots, A_L\( таких, что любые две соседние в этой последовательности клетки \)A_i\( и \)A_{i+1}\( являются соседними на поле, т.е. имеют общую сторону. Головой удава считается клетка \)A_L\(. За один ход удав может продвинуться на одну клетку: он выбирает новую клетку \)H\( для своей головы (естественно, смежную с текущей клеткой головы \)A_L\( и не выходящую за границы поля), а его хвост подтягивается следом на одну клетку. То есть, после хода удав будет представлять собой последовательность из клеток \)A_2, A_3, \ldots, A_L, H\(. Обратите внимание, по определению выше удав после выполнения хода не должен дважды содержать одну и ту же клетку, но новое положение головы \)H\( вполне может совпадать со старым положением хвоста \)A_1\( (наш удав перемещается подобно гусенице, сначала сжимаясь и подтягивая хвост, а потом разжимаясь и продвигая голову, поэтому это корректный ход).

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

Перед каждым ходом удава на поле находится ровно одно яблоко. Каждый раз, когда удав съедает яблоко, его длина увеличивается на одного попугая. Это происходит следующим образом: удав делает ход, и если после этого в какой-нибудь из клеток удава (т.е. из клеток \)A_2, A_3, \ldots, A_L, H\( в обозначениях выше) оказывается яблоко, оно считается съеденным (как именно удав может есть яблоки любой частью своего тела - не менее запутанная история, чем объяснение таким скромным размерам удава в начале игры, поэтому её мы также опустим). Если яблоко было съедено, то оно продвигается по телу удава вплоть до бывшего положения хвоста (т.е. до клетки \)A_1\(), и на этом месте возникает новая клетка удава. Таким образом, удав приобретает длину в \)(L + 1)\( попугай и занимает к началу следующего хода клетки (\)A_1, A_2, \ldots A_K, H\(). В этот же момент попугай скидывает следующее яблоко на поле. Обратите внимание, что если удав ест яблоко, то в этом случае он уже не имеет права выбирать в качестве нового положения головы \)H\( старую клетку своего хвоста, потому что тогда к началу следующего хода она будет дважды встречаться в теле удава, что недопустимо!

Удав проигрывает, если он делает некорректный ход. Некто (не будем говорить, кто, хотя это был слонёнок) рассказал вам, в какие клетки поля и в каком порядке попугай собирается скидывать яблоки. Помогите удаву построить выигрышную стратегию перемещения!

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

В первой строке ввода записано натуральное число \)K\( - количество яблок, которое скинет попугай на поле. Длина удава не превзойдёт \)38\( попугаев, т.е. \)K + 3 \le 38\(.

В каждой из последующих \)K\( строк задано по два целых числа \)R_i, C_i\( (\)1 \le R_i, C_i \le 10\()- номера строки и столбца, куда попугай скинет \)i\(-е яблоко. Строки нумеруются с \)1\( по \)10\( сверху вниз, столбцы нумеруются с \)1\( по \)10\( слева направо. Позиции, где возникают яблоки, могут повторяться.

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

Сначала выведите целое число \)T\( - количество ходов, которое потребуется удаву, чтобы съесть все яблоки.

Во второй строке выведите строку, задающую последовательность ходов удава, состоящую из \)T\( латинских букв 'R', 'U', 'L', 'D', обозначающих, что на очередном ходу клетка головы удава смещается соответственно вверх, вправо, влево или вниз.

Будет зачтена любая последовательность ходов, которая не приводит к проигрышу удава, по итогам которой все яблоки будут съедены, и длина \)T\( которой не превосходит \)10\,000\( в целях экономии времени играющих. Жюри гарантирует, что при данных ограничениях задачу всегда возможно решить.

Примечание

Пояснение к первому тесту. Положение удава по ходу игры показано ниже.

Пояснение ко второму тесту. Второе яблоко выпадает прямо на удава, и сразу оказывается съеденным, т.е. перед вторым ходом удав состоит из клеток \)(1, 1), (1, 2), (1, 3), (2, 3)\(, а после второго хода - из клеток \)(1, 1), (1, 2), (1, 3), (2, 3), (3, 3)\(. Также обратите внимание, что после шестого хода происходит ситуация, проиллюстрированная в условии: в качестве нового положения головы выбирается клетка \)(2, 3)$, являющаяся на тот момент клеткой хвоста.

Примеры
Входные данные
3
3 3
4 6
1 3
Выходные данные
16
DDDRRRUUULLLLDRD
Входные данные
4
2 3
1 2
3 5
2 2
Выходные данные
8
DDRRULLL
ограничение по времени на тест
3.0 second;
ограничение по памяти на тест
256 megabytes
Янтарный шарик падает на землю, встречая на своём пути перегородки. Введём стандартную двумерную систему координат таким образом, что земля будет представлять собой ось \(O_x\), а сила тяжести действует в отрицательном направлении оси \(O_y\). Перегородки представляют собой отрезки, а шарик — точку. Попадая на перегородку (даже в её самой верхней точке), шарик скатывается по ней и продолжает падение вертикально вниз (иными словами, горизонтальная составляющая скорости шарика мгновенно исчезает по достижении конца перегородки). Среди перегородок нет ни вертикальных, ни горизонтальных, все они находятся строго над уровнем земли, и никакие две перегородки не имеют общих точек. Таким образом, рано или поздно шарик достигнет земли в некоторой точке.

Шарик несколько раз запускают с разных стартовых позиций. Для каждого запуска требуется найти x-координаты точки соприкосновения шарика с землёй.

Формат входного файла

В первой строке содержится число N (0 <= N <= 3 * \(10^5\)) — количество перегородок.

Каждая из последующих \(N\) строк содержит описание очередной перегородки — четыре числа \(x_1\), \(y_1\), \(x_2\), \(y_2\) (\(x_1\) < \(x_2\), \(y_1\) ̸= \(y_2\), \(y_1\); \(y_2\) > 0): (\(x_1\); \(y_1\)) — координаты левого конца перегородки, (\(x_2\); \(y_2\)) — координаты правого конца.

В следующей строке содержится число M (1 <= M <= 3 * \(10^5\)) — количество запусков шарика.

Далее следуют \(M\) строк, в каждой из которых записано одно целое число — \(x\)-координата позиции, с которой производится запуск. Гарантируется, что \(y\)-координата стартовой позиции превосходит \(y\)-координаты концов всех перегородок.

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

Формат выходного файла

Для каждого запуска выведите на отдельной строке единственное число — x-координату точки соприкосновения шарика с землёй.

Note

Изображение в условии соответствует третьему примеру входных данных.

Примеры
Входные данные
2
0 7 1 3
3 3 4 7
2
2
4
Выходные данные
2
3
Входные данные
2
-3 5 1 3
-1 1 1 2
3
-3
-4
1
Выходные данные
-1
-4
-1
Входные данные
7
-2 10 2 11
-4 9 -1 6
3 9 8 8
-7 3 -6 6
-1 5 3 4
-3 4 0 3
1 2 7 3
1
0
Выходные данные
1
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Анализируя результаты командной олимпиады прошлого года, жюри решило помимо лиг А и В организовать ещё и лигу С. На стадии распределения задач по лигам каждая отобранная задача была помечена соответствующим набором букв: А , В , С , АВ , ВС или АВС .

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

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

В первой строке ввода находится число N ( 3 ≤ N ≤ 32 ) "— количество задач, отобранных для олимпиады.

В каждой из следующих N строк содержится описание задачи, начинающееся с одной из пометок А , В , С , АВ , ВС или АВС , записанной заглавными латинскими буквами, за которой через пробел следует название задачи. Название задачи "— произвольная строка, состоящая из строчных и прописных латинских букв и пробелов, которая заключена в кавычки (символ с кодом 34). В частности, название задачи может быть пустым или состоять только из пробелов. Описания задач не могут полностью совпадать, но задачи могут иметь одинаковые названия. Длина каждой строки во входном файле не превосходит 255 символов.

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

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

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

Примеры
Входные данные
5
C "Tetris"
A "World of warcraft"
B "Doom"
C "Lines"
AB "Counter strike"
Выходные данные
A "World of warcraft"
AB "Counter strike"
B "Doom"
C "Tetris"
C "Lines"
Входные данные
4
A "a"
B "b"
C "c"
ABC "abc"
Выходные данные
Impossible
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Мэр уездного города заботится о жителях и прислушивается к их мнению, поэтому он ежегодно даёт поручение социологической комиссии провести опрос общественного мнения. Участникам опроса предлагается M вопросов, i -й из которых содержит целое положительное количество вариантов ответа a i . Жители города крайне серьёзно относятся к данному опросу, поэтому заполняют анкету добросовестно: каждый участник опроса выбирает ровно один вариант ответа в каждом вопросе.

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

В целях соблюдения конфиденциальности и анонимности все данные с бумажных анкет были занесены в электронную базу, а листы уничтожены. Но, по закону подлости, в ночь перед презентацией результатов исследования испортился жёсткий диск компьютера, на котором они хранились в единственном экземпляре. Более того, вместе с результатами был утрачен даже список вопросов и вариантов ответов на них! Единственной сохранившейся информацией являются пометки на полях тетради, сделанные во время подсчётов результатов секретаршей Жанной. После обработки каждого варианта она записывала процент людей, выбравших его, в совершенно произвольное место своей тетради ровно один раз.

Долгий и кропотливый процесс восстановления результатов предполагается начать с определения количества вопросов в исходном тестировании. Эта задача поручена вам.

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

В первой строке находится одно целое число K ( 1 ≤ K ≤ 100 ) "— количество чисел, записанных Жанной на полях тетради, совпадающее с суммарным количеством вариантов ответа на все вопросы.

Во второй строке записаны K неотрицательных целых чисел от 0 до 100, разделённых пробелами, каждое из которых обозначает процент жителей, проголосовавших за какой-то вариант ответа на какой-то вопрос.

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

Выведите единственное число M "— количество вопросов в социологическом опросе. Гарантируется, что существует ответ, удовлетворяющий записям из тетради Жанны. Если определить количество вопросов однозначно не удаётся, выведите любое подходящее значение.

Примечание

В приведённом примере существует единственный способ получить подходящее разбиение: первое и третье число представляют ответы на один вопрос, а второе и четвёртое "— на другой.

Примеры
Входные данные
4
25 50 75 50
Выходные данные
2

Страница: << 31 32 33 34 35 36 37 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест