Задача 0F. Кривой код

Автор:Женя Татаринов   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

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

Так как Вениамин начинающий программист, он написал максимально кривой код решения данной задачи. Сначала он все числа последовательности a перевел в двоичное представление, а затем складывал двоичные коды чисел как десятичные числа (Вениамин забыл о том, что он больше не работает с десятичными числами), и только потом перевел полученную сумму в двоичный код.

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

Формат входных данных

В первой строке вводится натуральное число n (1 ≤ n ≤ 105). Во второй строке вводится последовательность a из n натуральных чисел (1 ≤ ai ≤ 109).

Формат выходных данных

Выведите ответ на задачу без ведущих нулей.

Примечание

В первом примере Вениамин вычислял ответ следующим образом:

  1. 210 = 102, 710 = 1112, 510 = 1012
  2. 1010 + 11110 + 10110 = 22210
  3. 22210 = 110111102

Примеры тестов

Стандартный вход Стандартный выход
1
3
2 7 5
11011110

Задача 0O. Конвертирование тяночек

Автор:Женя Татаринов   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

Абсолютно все знают, что 2D мир лучше 3D, поэтому в данной задаче Вам нужно будет исправить ошибку режиссёров очередного фильма жанра аниме и перевести тяночку в 2D мир.

В данной задаче есть тяночка и её одежда. Они представлены в виде двух выпуклых многогранников, которые могут между собой пересекаться. К сожалению, для каждого многогранника режиссёры помнят только набор из n точек, каждая из которых имеет координаты (xi, yi, zi), в этих точках находятся все точки, которые являются вершинами многогранника, а также какие-то точки внутри многогранников, некоторые точки могут повторяться (то есть иметь одинаковые координаты). Чтобы перевести тяночку из 3D в 2D, Вам нужно построить проекцию данных многогранников на плоскость, которую Вам сообщат режиссёры (это одна из трех плоскостей: OXY, OYZ или OXZ).

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

Формат входных данных

В первой строке вводятся натуральные числа n1 и n2 - количество вершин многогранника тяночки и многогранника одежды соответственно (4 ≤ n1, n2 ≤ 100).

В следующих n1 строках вводятся натуральные числа xi, yi и zi - координаты i-й вершины (1 ≤ xi, yi, zi ≤ 109). Данные вершины относятся к многограннику тяночки.

В следующих n2 строках вводятся натуральные числа xi, yi и zi - координаты i-й вершины (1 ≤ xi, yi, zi ≤ 109). Данные вершины относятся к многограннику одежды.

В последней строке вводится строка s ∈ {"OXY"; "OYZ"; "OXZ"}, которая показывает, на какую плоскость нужно построить проекцию.

Формат выходных данных

Выведите YES, если условие цензуры выполняется, или NO в противном случае.

Примеры тестов

Стандартный вход Стандартный выход
1
8 4
1 1 1
1 4 1
1 1 4
1 4 4
4 1 1
4 4 1
4 1 4
4 4 4
1 1 1
6 1 1
1 6 1
1 1 6
OXY
YES

Задача 0R. 52

Автор:Женя Татаринов   Ограничение времени:2 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

Замечали ли Вы когда-нибудь то, что на электронном циферблате цифры 5 и 2 очень сильно похожи? А точнее, что они зеркальны друг другу?

У Жени есть длинный циферблат, на котором светятся n цифр, причем все цифры являются либо пятёркой, либо двойкой. Женя хочет отрезать какую-либо полоску из этого циферблата (то есть выбрать какое-то количество подряд идущих цифр) и подарить ее Анжелике. Анжелика любит во всем красоту, поэтому она хочет получить в подарок такую полоску, которая имеет четную длину и которая симметрична относительно центра. Более формально, полоска s длины 2k Анжелике понравится, если для любого 1 ≤ i ≤ 2k выполняется одно из двух условий:

  1. si = 5, s2k − i = 2
  2. si = 2, s2k − i = 5

Помогите Жене! Сообщите, сколькими способами он может отрезать полоску, чтобы подарить ее Анжелике.

Формат входных данных

В первой строке вводится число n — количество цифр на полоске (1 ≤ n ≤ 5 * 105). В следующей строке вводится n цифр, которые показывают, в каком порядке светятся цифры на циферблате.

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

Формат выходных данных

Выведите ответ на задачу.

Примеры тестов

Стандартный вход Стандартный выход
1
8
52525252
16
2
5
52525
6
3
2
52
1

Задача 1. Сила Архимеда

Автор:Татаринов Женя   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

Паша и Артём оказались на планете X, ускорение свободного падения на которой равно g Н/кг. Также ребята нашли огромное количество жидкости, плотность которой равна ρ кг/м3. Гуляя по планете, Артем нашел n камней, масса i-го камня равна mi кг, объем i-го камня равен Vi м3.

Паша захотел взять какие-либо камни и превратить их в один (масса/объем итогового камня равна сумме масс/объемов использованных камней) таким образом, чтобы этот камень плавал в жидкости. Помогите Паше! Сообщите ему максимальную массу камня, которую он может собрать из камней, которые нашел Артем.

Формат входных данных

В первой строке вводятся натуральные числа n, g и ρ (1 ≤ n ≤ 1000, 1 ≤ g, ρ ≤ 10000).

В следующих n строках вводятся натуральные числа mi и Vi (1 ≤ mi, Vi ≤ 100).

Формат выходных данных

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


Примечание

Приведем некоторые факты из курса физики:

Примеры тестов

Стандартный вход Стандартный выход
1
2 10 1000
100 5
1 1
101

Задача 2A. Авторитеты

Автор:Женя Татаринов   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

На экзамен по информатике пришло n участников, пронумерованных от 1 до n. Среди участников некоторые участники были друзьями, а точнее одни участники были авторитетами для других участников. Для i-го участника известны номера участников, которые являются его авторитетами.

Каждый участник экзамена определил условия, когда он точно завершит свой экзамен. Таким образом, i-й участник покинет пункт проведения экзамена в тот момент времени, который произойдет раньше:

  1. С начала олимпиады прошло ti минут.
  2. Некоторые авторитеты участника завершили экзамен, и в кабинете осталось не больше ci авторитетов.

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

Для каждого участника сообщите, через какое время после начала экзамена он его завершит.

Формат входных данных

В первой строке вводится натуральное число n — количество участников экзамена (1 ≤ n ≤ 105).

В следующих n строках вводятся данные в следующем формате: первое число i-й строки — количество авторитетов i-го участника (обозначим за mi), остальные mi чисел — номера участников, которые являются авторитетами для i-го участника (0 ≤ mi < n). Участники экзамена не очень сильно знают друг друга, поэтому сумма всех mi не превосходит 2 * 105.

В следующей строке вводится последовательность натуральных чисел t1, t2, ..., tn (1 ≤ ti ≤ 109).

В последней строке вводится последовательность целых чисел c1, c2, ..., cn ( − 1 ≤ ci < mi). Если ci =  − 1, то i-й участник будет выполнять задания, не обращая внимания на своих авторитетов.

Формат выходных данных

Выведите n чисел, где i число означает количество минут, через которое i-й участник завершит выполнение экзамена.

Примеры тестов

Стандартный вход Стандартный выход
1
5
0
1 3
1 1
0
1 4
8 5 3 8 2
-1 0 0 -1 0
8 3 3 8 2 

Задача 2S. Новые ценики

Автор:Завгороднев А.А.   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

В DNS Ритейл существует n видов товаров, и продавцы-консультанты очень жалуются на их ценообразование, т.к. им часто нужно перепечатывать ценники.

Цена меняется каждый час следующим образом:

  1. Сначала все виды условно расставляются в ряд слева направо по возрастанию их цен. После этого для каждого вида вычисляется его новая цена, равная сумме цен видов справа от неё.
  2. А после того, как новая цена стала известна для всех видов, выполняется стандартный алгоритм (legacy-код, который никто не решается поменять), и к каждому виду применяет операцию взятия остатка от деления цены на 109 + 7. Считается, что это делается для того, чтобы не было слишком больших цен.

Сегодня цены на товары равны 1, 2, 3, 4, … , n денежных единиц.

Продавцы-консультанты уже перестали каждый день удивляться новой странной цене на товары. Но им очень интересно, к чему такая система может привести в будущем, поэтому просят вас о не менее странной просьбе: выяснить сумму цен всех видов товаров в тот же день в тот же час ровно через k веков.

Считается, что в дне 24 часа. В каждом году 365 дней (В DNS ритейл не знают что такое високосные года). Век равен 100 годам.

Формат входных данных

В единственной строке входных данных находится два числа: n - количество видов товаров и k - количество веков. (1 ≤ n ≤ 50, 1 ≤ k ≤ 5).

Формат выходных данных

Выведите одно число - сумму цен через k веков.


Пояснение к примерам:

    В первом примере понятно, что уже через один час цена единственного вида станет равна нулю, потому что нет товара справа от него. Так что по аналогии и через век цена будет также равна нулю. Во втором примере цены на товар выглядят следующим образом: В начале их цена [1, 2], а через час цены станут равны [2, 0], а еще через час [0, 2] и так далее. И также по аналогии через век сумма цен будет равна 2.

Примеры тестов

Стандартный вход Стандартный выход
1
1 1
0
2
2 1
2
3
3 1
1704755427

Задача 3K. Линейная комбинация функций

Автор:Завгороднев А.А, Женя Татаринов   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

Вам даны n различных функций, i-я функция задана каким-либо многочленом pi(x) степени di. Найдите такие вещественные коэффициенты ki, что график q(x) = k1 p1(x) + k2 p2(x) + ...  + kn pn(x) является прямой.

Формат входных данных

В первой строке вводится натуральное число n - количество функций (2 ≤ n ≤ 300).

В следующих 2n строках вводятся функции в следующем виде: в первой строке вводится число di - степень i-го многочлена (1 ≤ di ≤ 300). В следующей строке вводятся di + 1 вещественных чисел, j-е число равно cij, которое показывает коэффициент перед xj (обратите внимание, что 0 ≤ j ≤ di, а также что  − 100 ≤ cij ≤ 100). То есть i-й многочлен имеет вид ci0 * x0 + ci1 * x1 + ... + cidi * xdi.

Формат выходных данных

Если невозможно подобрать коэффициенты таким образом, чтобы график функции q(x) являлся прямой, в единственной строке выходного файла выведите IMPOSSIBLE. В противном случае в первой строке выведите POSSIBLE, во второй строке выведите n вещественных чисел, где i-е число равно ki ( − 106 ≤ ki ≤ 106). Ваше решение будет принято, если полученная функция на промежутке [ − 100; 100] отходит от некоторой прямой не более, чем на 10 − 3.

Примеры тестов

Стандартный вход Стандартный выход
1
2
2
5 2 -4
2
-2 -6 8
POSSIBLE
2 1

Задача 5L. Игровой движок

Автор:Завгороднев А.А.   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход   Ограничение записи:62914560 Б

Условие

Всем известно, что игра DOOM 1993 года написана на языке программирования C. Программист Александр очень любит ставить эту игру на самые необычные и непредназначенные для этого устройства, такие как экран микроволновой печи или домашний электронный градусник.

Однако Александр тот ещё олд и считает, что язык C недостаточно старый, поэтому он решил переписать игру на язык Паскаль.

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

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

Формат входных данных

В первой строке входных данных задано два числа H и W - высота и ширина экрана в пикселях. (1 ≤ H, W ≤ 2000).

Во второй строке располагается число N - количество врагов на сцене. (0 ≤ N ≤ 500).

В следующих N строках располагается по 5 чисел. Первые четыре числа x1, y1, x2, y2 - концы одной из диагоналей прямоугольника в пикселях. После чего идет число d - расстояние до врага. (1 ≤ x1, x2 ≤ W,   1 ≤ y1, y2 ≤ H,   1 ≤ d ≤ 109).

Каждая из сторон прямоугольников параллельна какой-то стороне экрана.

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

Формат выходных данных

Выведите матрицу A размера H × W, в которой элемент Ai, j равен расстоянию до ближайшего врага в пикселе с координатами (i, j). Если в этом пикселе нет врагов, то выведите 0.

Примеры тестов

Стандартный вход Стандартный выход
1
5 5
2
2 2 5 3 1
3 1 4 4 2
0 0 0 0 0 
0 0 2 2 0 
0 1 1 1 1 
0 1 1 1 1 
0 0 2 2 0 
2
3 3
2
1 3 2 2 1
2 1 3 2 1
1 1 0 
1 1 1 
0 1 1 

Задача 6E. Mark II

Автор:Завгороднев А.А.   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

На сайте drom.ru есть n объявлений о продаже машин марки Mark II. Цены в объявлениях, конечно, разные, и иногда бывает прямо слишком большой разброс.

Аналитики дрома решили, что надо заняться регулировкой цен. Они придумали стратегию:

Машину могут купить и в самом начале, до какого-либо изменения цен.

Формат входных данных

В первой строке располагаются два числа n и k — количество объявлений и минимальная цена покупки. (2 ≤ n ≤ 105,   0 ≤ k ≤ 109).

Во второй строке располагаются n чисел ai, где ai — цена в объявлении с номером i. (0 ≤ ai ≤ 109).

Формат выходных данных

Выведите номер объявления, машину с которого купили. Если вдруг таких объявлений несколько, выведите объявление с наименьшим номером. А если таких объявлений вовсе нет, то выведите -1.

Примеры тестов

Стандартный вход Стандартный выход
1
2 1
2 2
2
2
3 0
1 3 1
-1
3
5 5
8 7 6 5 4
4

Задача 6N. Доска объявлений

Автор:Бадерик П.М.   Ограничение времени:1 сек
Ввод / вывод:интерактивный   Ограничение памяти:256 Мб

Условие

Farpost — самый популярный классифайд Дальнего Востока, где ежедневно публикуются миллионы объявлений.

Быть в топе на Фарпосте — задача со звёздочкой. Один из факторов, который на это влияет — рейтинг продавца (по оценкам покупателей).

Представим, что вы берёте проект на практике в Фарпосте и хотите помочь продавцам скорректировать их поведение на сайте для достижения высокого рейтинга.

Вам нужно проанализировать рейтинг продавца за последние N дней.

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

Кажется не очень сложным, да?)

Но из-за защиты персональных данных пользователей (в том числе и продавцов) вы не можете напрямую получить рейтинг продавца. Такие данные есть только у наших сотрудников.

Зато у вас есть возможность отправить небольшое количество запросов в систему.

Запросы могут быть только 2 видов:

  1. «rating» - где rating это произвольное целое значение рейтинга на ваш выбор. В ответ вы получите целое число, где первые N битов указывают было ли у продавца в i день рейтинга не меньше, чем rating.
  2. «k i1 i2 ... ik» - отправить ответ, где k - целое число, количество правильных изменений тренда. А i1, ..., ik - номера дней, в которых произошёл правильный разворот тренда.

Чтобы вас не забанили как бота, вы можете отправить не более 90 запросов.

Формат входных данных

В первой строке входных данных идет целое число N.

Формат выходных данных

В запросе с ответом, позиции экстремумов должны идти по возрастания. Так же обращаю внимание, что номера дней: 0 ≤ ij < N.

Каждый вопрос и вывод ответа должны заканчиваться символом перевода строки, а также необходимо выполнять сброс буфера flush()

Примечание

i позиция называется правильным разворотом, если hi − 1 > hi < hi + 1 или hi − 1 < hi > hi + 1.

Напоминаем, что биты нумеруются справа налево.

Ограничения

1 ≤ n ≤ 31

 − 1017 ≤ hi ≤ 1017

|hi − hi − 1| ≤ 1, где hi - целое число, значение в i день на графике.

Описание 1 примера:

ЗапросОтветБиты
971271111111
99110001011
10100000000

Первый запрос: во все дни рейтинг больше или равен 97.

Второй запрос: только в первый, второй и четвёртый дни рейтинг больше или равен 99.

Третий запрос: во все дни рейтинг меньше чем 101.

Примеры тестов

Стандартный вход Стандартный выход
1
7
127
11
0
? 97
? 99
? 101
! 2 2 3
2
15
32760
0
32765
2016
? 0
? 4
? -1
? 2
! 4 5 6 7 13

Задача 7I. Дерево отрезков

Автор:Завгороднев А.А.   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

У Максима есть массив a размера n. Назовём подмассив от i до j правильным, если его размер (j − i + 1) равен степени двойки 2k для некоторого k. Максим выбирает какой-то правильный подмассив, на котором он строит дерево отрезков.

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

После этого Максим нумерует вершины дерева следующим образом: У корня будет номер 1, далее у его левого сына номер 2, а у правого номер 3. После этого он нумерует детей вершины номер 2, а потом вершины номер 3. И так далее он проводит эту операцию последовательно по возрастанию номеров вершин.

И уже после нумерации Максим находит его любимое число, характеризующее подмассив - сумму значений в узлах с нечетным номером. Это число Максим называет характеристикой подмассива.

Так как Максим очень любит эти числа, он просит вас найти сумму характеристик всех возможных правильных подмассивов массива a. Так как ответ может быть слишком большим, выведите его по модулю 109 + 7.

Формат входных данных

В первой строке находится одно целое число n - размер массива. (n ≤ 106).

Во второй строке располагается n чисел - значения массива a.

Формат выходных данных

Выведите одно целое число - сумму характеристик всех возможных правильных подмассивов массива a по модулю 109 + 7.


Пояснение к первому примеру:

Всего существует 8 правильных подмассивов:

Итого сумма всех характеристик: (1 + 2 + 3 + 4) + ((3 + 2) + (5 + 3) + (7 + 4)) + (10 + 7 + 2 + 4) = 57.

Дерево отрезков с номерами узлов.

Примеры тестов

Стандартный вход Стандартный выход
1
4
1 2 3 4
57
2
3
3 1 330
1000
3
1
41
41

Задача 8H. Интересные моменты

Автор:Завгороднев А.А.   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

Пётр решил приукрасить свою страницу во ВКонтакте. А именно привести в порядок свои фотографии. Так получилось, что некоторые фотографии у него интересные, а некоторые не очень. И вот Петя решил испробовать методику интересных моментов.

Интересный момент возникает, когда пара интересных фотографий идут друг за другом. То есть, например, трое подряд идущих интересных фотографий создадут 2 интересных момента.

И вот Пётр хочет, чтобы его страница получилась сбалансированной, поэтому просит вас помочь найти количество интересных моментов в его странице, начиная с фотографии номер l до фотографии с номером r.

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

Формат входных данных

В первой строке входных данных располагается число n — количество уже имеющихся фотографий на странице Петра в ВК. (1 ≤ n ≤ 105).

Во второй строке находится последовательность из n нулей и единиц, в которой если на i-й позиции находится единица, то фотография с номером i интересная. И не интересная, если i-й позиции находится ноль.

Далее располагается число q — количество действий Петра (0 ≤ q ≤ 105).

В следующих q строках находится описание действий Петра:

Гарантируется, что все заданные номера фотографий существуют на странице (за исключением p =  − 1, но этот случай описан выше).

Нумерация фотографий начинается с нуля.

Формат выходных данных

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


Объяснение примера:

Сначала страница выглядела так: 0111011

Далее тут (0111011) три интересных момента, между 1 и 2 фото, между 2 и 3 фото и между 5 и 6 фото.

Далее тут 01 (11011) два интересных момента.

После этого страница стала выглядеть так: 01101011.

Далее тут (01101011) два интересных момента.

После этого страница стала выглядеть так: 0110111.

Далее тут 0(110111) три интересных момента.

После этого страница стала выглядеть так: 011111.

Далее тут (011111) 4 интересных момента.

После этого страница стала выглядеть так: 11111.

И тут (11111) также 4 интересных момента.

Примеры тестов

Стандартный вход Стандартный выход
1
7
0111011
10
q 0 6
q 2 6
i 2 0
q 0 7
d 5
q 1 6
d 3
q 0 5
d 0
q 0 4
3 2 2 3 4 4 

1.589s 0.011s 41