Input file: | Standard input | Time limit: | 1 sec | |
Output file: | Standard output | Memory limit: | 256 Mb |
There are three strictly increasing arrays of integers A1, A2, A3 with lengths N1, N2, N3.
Your program must find the count of triples of the same numbers simultaneously occurring in each of these arrays.
First line contains N1, N2, N3.
Second line contains A11, A12, ..., A1N1
Third line contains A21, A22, ..., A2N2
Fourth line contains A31, A32, ..., A3N3
1 ≤ N1, N2, N3 ≤ 105
0 ≤ Ai j ≤ 109
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | A. Karabanov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 64 Мб | |
Выходной файл: | Стандартный выход |
Геологоразведочная партия возвращается из одной экспедиции и сразу же уходит в другую. Для восполнения ресурсов начальник экспедиции радиограммой направил список необходимого оборудования, которое необходимо подготовить.
Тимофей отвечает за обеспечение экспедиции батарейками. В его распоряжении батарейки двух типов: AA и AAA. Заявка, которую он получил, выглядит так: "количество тип" (без пробела). Например, строка "123AA" означает, что геологам требуется 123 батарейки первого типа, а строка "6AAA" означает, что им нужно 6 батареек второго типа.
Наконец, Тимофей получил долгожданную заявку и может приступить к работе. К сожалению, ровно один символ в полученной строке передан с ошибкой. Помогите Тимофею определить наибольшее количество батареек каждого типа, которое может понадобится геологам.
Единственная строка входного файла содержит строку s. Гарантируется, что в строке присутствуют только символы из набора "0123456789A". Гарантируется корректность исходного текста радиограммы (в частности, отсутствие ведущих нулей), а также то, что в ней заменен ровно один символ.
Выведите через пробел два неотрицательных целых числа — наибольшее количество батареек первого и второго типа, которые могут понадобиться геологам в соответствии с заявкой.
3 ≤ len(s) ≤ 5
В первом примере ошибка может быть в первом символе, и тогда исходная заявка (возможно) выглядела так: "923AA" (во втором и третьем символах ошибка тоже возможна, но Тимофею точно следует подготовить не менее 923 батареек первого типа). Также возможно, что вместо еще одного символа "A" передали символ "3" и исходная заявка выглядела так: "12AAA". Тогда Тимофею нужно подготовить не менее 12 батареек второго типа.
Во втором примере заявка может быть подана только на батарейки первого типа, а в третьем — только на батарейки второго типа.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | A. Baranov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Молодой программист Вася занимается N-мерной укладкой графов. В результате работы его алгоритма каждой вершине приписываются координаты в N-мерном пространстве. Однако он не учел, что при сохранении результатов в различных форматах точность может потеряться. Теперь он вынужден изучить полученные файлы, чтобы понять, в каком из них лежит тот или иной граф.
Пусть имеются два графа — исходный и считанный из файла. Из-за особенностей конвертации координаты вершин второго графа могли сместиться, но не более чем на заданное ε. Нумерация вершин также могла измениться.
Требуется сравнить указанные графы и по возможности восстановить соответствие между их вершинами между ними.
Во входных данных записано целое число N — размерность пространства, V — количество вершин и E — количество ребер.
После чего следует набор из N ⋅ V координат вершин исходного графа и набор из E его ребер, заданных парой целых чисел. Нумерация вершин начинается с нуля.
Далее аналогичным образом указан второй граф.
В конце входных данных указана используемая точность ε.
Выходные данные должны содержать V целых чисел Li — номер вершины второго графа, соответствующей i-й вершине исходного графа.
Если установить соответствия не представляется возможным, выведите единственное число − 1.
Вершины исходного графа расположены друг от друга на расстоянии не менее чем 10 ⋅ ε, а их координаты лежат в диапазоне от − 10 до 10.
1 ≤ N ≤ 5, 1 ≤ V ≤ 2 ⋅ 104, 0 ≤ E ≤ 2 ⋅ V,
10 − 6 ≤ ε ≤ 1
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | A. Baranov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Пусть имеется набор из N строк одинаковой длины, состоящих из нулей и единиц. Далее из указанного набора будет выбрана некоторая заранее неизвестная строка, для которой необходимо угадать ее порядковый номер.
Требуется определить оптимальную в худшем случае последовательность сравнений, позволяющую однозначно распознать номер входной строки. Результат следует представить в виде дерева решений.
Каждый нелистовой узел такого дерева включает в себя номер позиции i, в которой необходимо произвести сравнение, и имеет число потомков, равное числу символов бинарного алфавита.
В случае, если в i-й позиции строки встречается символ с номером k, осуществляется переход в соответствующее поддерево, где и продолжается поиск.
Листы такого дерева соответствуют конечным состояниям поиска и хранят номера распознанных строк.
Во входных данных указано число N, за которым следует ровно N строк исходного набора.
Выходные данные должны содержать дерево решений, записанное в следующем виде.
Описание листового узла начинается с символа '=', за которым указывается номер строки
(нумерация строк начинается с нуля).
Для нелистового узла вначале идет символ '>',
после чего указан номер позиции, с которой нужно продолжить сравнение
(позиции также нумеруются с нуля).
Далее аналогичным образом записывается соответствующее поддерево.
Гарантируется, что все строки исходного набора различны,
а их длины не превосходят 32.
2 ≤ N ≤ 16
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | A. Baranov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Эквидистантной оболочкой трехмерного тела называется множество внешних по отношению к нему точек, удаленных от него не более чем на заданное расстояние δ. На рисунке можно видеть пример эквидистантной оболочки для куба, представленной в разрезе.
Даны произвольный выпуклый многогранник и значение δ. Требуется написать программу, вычисляющую объем эквидистантной оболочки.
В начале входных данных хранится исходный многогранник, записанный в следующем виде.
Вначале идет целое число V, за которым следует ровно 3 ⋅ V вещественных чисел, задающих координаты вершин.
Далее целое число E, за которым следует ровно 2 ⋅ E номеров вершин, попарно задающих ребра.
Далее идет целое число F, за которым следует ровно F граней, записанных в следующем виде.
Вначале целое число ребер N, за которым следует N номеров ребер этой грани в произвольном порядке.
Нумерация всех указанных элементов начинается с нуля.
В конце входных данных записано вещественное значение δ.
Выходные данные должны содержать объем с точностью не менее 5 знаков после запятой.
Все грани являются невырожденными и выпуклыми.
Координаты вершин лежат в диапазоне от − 10 до 10.
Число элементов каждого вида не превосходит 100.
0 ≤ δ ≤ 1
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | A. Baranov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Пусть имеется некоторый выпуклый четырехмерный политоп, заданный в виде сетки, составленной из таких топологических элементов, как вершины, ребра, грани и трехмерные тела, для которых выполняются следующие условия.
Каждая вершина такого политопа задается четырьмя своими координатами (x, y, z, w). Каждое ребро представляет собой прямолинейный отрезок и задается парой соединяемых им вершин. Каждая грань представляет собой выпуклый многоугольник и задается набором своих ребер. Каждое тело представляет собой выпуклый многогранник и задается набором своих граней.
Сам политоп задается набором ограничивающих его трехмерных тел.
Требуется написать программу, вычисляющую объем сечения указанного политопа трехмерным подпространством при w = 0.
Во входных данных последовательно хранятся наборы сеточных элементов.
Вначале идет целое число V, за которым следует ровно 4 ⋅ V вещественных чисел, задающих координаты вершин.
Далее целое число E, за которым следует ровно 2 ⋅ E номеров вершин, попарно задающих ребра.
Далее идет целое число F, за которым следует ровно F граней, записанных в следующем виде.
Вначале целое число ребер N, за которым следует N номеров этих ребер.
Аналогичным образом записываются тела, заданные номерами своих граней.
Нумерация сеточных элементов каждого вида начинается с нуля.
Выходные данные должны содержать объем с точностью не менее 5 знаков после запятой.
Гарантируется, что все сеточные элементы являются невырожденными.
Координаты вершин лежат в диапазоне от − 10 до 10.
Число элементов каждого вида не превосходит 1000.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | M. Sporyshev | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Let we have array of integers ai. You can select in it no more than one number and replace it to other. Cost of this replacement is absolute difference new and old numbers.
It is required to find replacement with a minimum cost, so that a pair of same elements appears in the array of prefix sums of this array.
First line of input data contains single number N — length of the array.
Second line contains the N integers ai.
Output data must contains two integer numbers — index of element for replacement (starting by zero) and signed difference between new and old its values.
If there are many solutions, than output any from them.
2 < N < 100000
|ai| ≤ 109
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Author: | A. Baranov | Time limit: | 1 sec | |
Input file: | Standard input | Memory limit: | 256 Mb | |
Output file: | Standard output |
Four strings of the same length are composed of four characters ('A', 'B', 'C' and 'D').
Your program must find such a string that Hamming distance from it to any strings of original set is the same.
Moreover, such string must have the same length as the original strings.
If there are many answers, select any string that gives the minimum of distance.
Input data contains four original strings.
Output data must contain answer or empty string, if answer does not exist.
Length of original strings is from 1 to 32.
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | A. Karabanov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 64 Мб | |
Выходной файл: | Стандартный выход |
Как-то раз Тимофей сидел на контрольной работе по математике. И свой вариант, и вариант соседки по парте, красавицы Алёны, давно были решены. От скуки Тимофей стал рисовать на клетчатом листочке-черновике.
Сперва от нарисовал большой квадрат со сторонами, лежащими на линиях клетчатой сетки и отметил все его вершины. Потом дополнительно отметил a точек на одной стороне квадрата, b на второй, c на третьей и d на четвертой. Теперь его интересует вопрос — сколько существует различных невырожденных треугольников с вершинами, лежащими в отмеченных точках?
Единственная строка входного файла содержит четыре натуральных числа, записанных через пробел: a, b, c и d.
Выведите натуральное число — ответ на задачу.
0 ≤ a + b + c + d ≤ 1000
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | A. Baranov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Сверчок движется вдоль числовой прямой, совершая скачки целочисленной длины. При этом он может скакать как в положительном, так и в отрицательном направлении. Размер одного скачка не может равняться нулю.
Требуется посчитать число всех различных способов, которыми сверчок может добраться из точки A в точку B, совершив при этом не более N скачков, суммарная длина которых не превосходила бы некоторое заданное L.
Так как полученное число может оказаться слишком большим, в качестве ответа следует вывести остаток от его деления на 109.
Во входных данных записаны четыре целых числа A, B, N и L.
Выходные данные должны содержать полученное число.
0 ≤ (B − A) ≤ 20, 1 ≤ N ≤ 40, (B − A) ≤ L ≤ 60
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | A. Karabanov | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 64 Мб | |
Выходной файл: | Стандартный выход |
Разбирая дедушкин гараж, Тимофей нашел под верстаком странную коробочку с керамическими пластинками разной длины. Папа объяснил ему, что это измерительный прибор, позволяющий сохранять и передавать меру длины. Пластинки просто приставляют друг к другу (их поверхности отполированы до такой степени, что держатся друг за дружку не распадаясь), пока не наберется нужная длина. К сожалению, многие пластинки оказались потеряны, поэтому теперь можно собрать лишь ограниченный набор различных длин. Тимофей хочет узнать, каков наиболее длинный диапазон последовательных натуральных значений, которые можно получить из оставшихся пластин.
Первая строка входного файла содержит натуральное число n — количество оставшихся пластин. Вторая строка содержит n натуральных чисел xi — длины пластин, записанных через пробел в порядке не убывания.
Выведите одно натуральное число — ответ на задачу.
1 ≤ n ≤ 100
1 ≤ xi ≤ 1000
В примере дано пять пластинок длиной 1, 4, 5, 7 и 15. Из них можно составить длины [1], [4 .. 13], [15 .. 17], [19 .. 28], [31 .. 32] (числа в квадратных скобках [a .. b] означают, что возможно собрать любую длину от a до b включительно). Наиболее длинный диапазон последовательных натуральных значений равен 10, он достигается дважды для [4 .. 13] и [19 .. 28].
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | A. Usmanov | Ограничение времени: | 1 сек | |
Ввод / вывод: | интерактивный | Ограничение памяти: | 256 Мб |
Данная задача является интерактивной и предполагает взаимодействие с сервером путем отправки и приема сообщений определенного вида.
Пусть у нас имеется полное двоичное дерево высоты N, состоящее из максимально возможного числа вершин.
Полагается, что все вершины такого дерева пронумерованы от 1 до 2N − 1.
Требуется определить номер корневой вершины, оперируя запросами на получение наименьшего общего предка (LCA) двух заданных вершин. Можно сделать не более N запросов.
В первой строке входных данных записано одно целое число N — высота дерева.
Чтобы сделать запрос, ваша программа должна вывести "? X Y
",
где X и Y — целые числа, номера вершин.
На каждый запрос программа жюри ответит целым числом —
номер вершины наименьшего общего предка.
Когда ваша программа определит корень дерева, она должна вывести "! X
" и завершиться.
Если ваша программа сделает недопустимый запрос, то она получит вердикт "Presentation error". Если ваша программа превысит допустимое количество запросов, то она получит вердикт "Wrong answer".
Каждый запрос и вывод окончательного результата должен быть одиночной строкой
заканчивающейся одиночным переводом строки (\n
).
Буфер вывода необходимо сбрасывать после каждой строки:
Язык | C++ | Pascal | Java | Python |
Код | cout.flush() |
flush(output) |
System.out.flush() |
stdout.flush() |
1 ≤ N ≤ 10
1 ≤ X, Y < 2N
В первом примере задано дерево:
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|