Язык программирования

3 014 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
У Громозеки есть следующие два личных принципа: он никогда не преодолевает расстояние больше L за один день. Он никогда не спит под открытым небом. То есть он должен находться в отеле в конце дня.
На планете Блук N отелей и все расположены на одной улице. Координата i-го отеля (1<=i<=N) равна xi.
Путешествуя по планете Блук, Громозека запланировал Q переездов. Каждым переездом он планирует менять отель aj на bj (1<=j<=Q). Для каждого переезда найдите минимальное количество дней, которое нужно Громозеке, чтобы добраться от aj-го отеля до bj-го, следуя его принципам.
Гарантируется, что он всегда может поехать из aj-го отеля до bj-го отеля.

Входные данные
В первой строке задается целое число N (2<=N<=105) - количество отелей на планете Блук. Во второй строке - N чисел xi - координаты i-го отеля (1<=x1<x2<...<xN<=10, xi+1−xi<=L). В третьей строке записано число L (1<=L<=109).  В четвертой строке - число Q (1<=N<=105). 
В последних Q строчках находится по два различных числа aj и bj (1<=aj,bj<=N). Все числа целые.

Выходные данные
Выведите Q строк. В j-й строке (1<=j<=Q) должно быть указано минимальное количество дней, которое Громозеке нужно, чтобы добраться из  aj-го отеля до bj -го отеля.

 

Примеры
Входные данные Выходные данные Пояснение
1 9
1 3 6 13 15 18 19 29 31
10
4
1 8
7 3
6 7
8 5
4
2
1
2
По 1-му переезду он может проехать от 1-го отеля до 8-го за 4 дня следующим образом:

День 1: Переезд из 1-го отеля во 2-й отель. Пройденное расстояние - 2.
День 2: Переезд из 2-го отеля в 4-й. Пройденное расстояние - 10.
День 3: Переезд из 4-го отеля в 7-й. Пройденное расстояние - 6.
День 4: Переезд из 7-го отеля в 8-й. Пройденное расстояние - 10.

 

Для целых чисел b ( b >= 2 ) и n ( n >= 1 ) пусть функция f(b, n) определяется следующим образом:
\(f (b, n) = n, когда\ n < b \\ f (b, n) = f (b, floor (n / b)) + (n \ mod \ b), когда \ n >= b\)

Здесь
floor(n / b) обозначает наибольшее целое число, не превышающее n / b;
n mod b обозначает остаток от n, деленный на b.

Менее формально f(b, n) равно сумме цифр n, записанных в базе b. Например, справедливо следующее:
\(f (10,87654) = 8 + 7 + 6 + 5 + 4 = 30\\ f (100,87654) = 8 + 76 + 54 = 138\)

Вам даны целые числа n и s. Определите, существует ли целое число b (b >= 2) такое, что f(b, n) = s. Если ответ положительный, найдите наименьшее из таких b.


Входные данные
В первой строке вводится целое число n (1 <= n <= 1011). Во второй строке - целое число (1 <= s <= 1011).

Выходные данные
Выведите ответ на задачу. Если ответа нет, то выведите -1.
 

 

Примеры
Входные данные Выходные данные
1 87654
30
10
2 87654
138
100
3 87654
45678
-1
4 31415926535
1
31415926535
5 1
31415926535
-1

 

Расставьте на шахматной доске размером N x N минимальное количество шахматных слонов так, чтобы они контролировали все поле (любая клетка должна находиться на одной диагонали хотя бы с одним слоном; считается, что слон контролирует и ту клетку, на которой стоит).

Входные данные
Вводится одно число - размер поля.

Выходные данные
Программа должна вывести одно число - минимальное количество слонов, которые можно расставить на данной доске так, чтобы они контролировали все поле.
 
Примеры
Входные данные Выходные данные
1 3 3
2 1 1
Пусть S(n) обозначает сумму цифр числа в десятичной системе счисления. Например, S(123) = 1 + 2 + 3 = 6. Мы будем называть целое число n числом Громозеки, если для всех положительных целых чисел m таких, что m > n, выполняется условие \(\frac {n}{S(n)} <= \frac {m}{S(m)}\). По заданному целому числу K, перечислите K наименьших чисел Громозеки.

Входные данные
На вход подается целое число K (K>=1, K-ое наименьшее число Громозеки не больше 1015).

Выходные данные
Выведите K строк. В i-й строке должен быть указан i-й наименьший номер Громозеки.
 

 

Примеры
Входные данные Выходные данные
1 10 1
2
3
4
5
6
7
8
9
19

 

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

Входные данные
На вход подается 1 строка.

Выходные данные
Необходимо вывести  букву, которая встречается в строке дважды.
 
Примеры
Входные данные Выходные данные
1 fif f
Измените регистр символа. Если он был строчной английской буквой сделайте его заглавной буквой; если он был заглавной английской буквой  - строчной.


Входные данные
Задан единственный символ c.

Выходные данные
Необходимо вывести  получившийся символ.
 
Примеры
Входные данные Выходные данные
1 a A
2 B b
В некоторой деревне есть 999 башен высотой 1, (1 + 2), (1 + 2 + 3), ..., (1 + 2 + 3 + ... + 999) метров с запада на восток. Расстояние между двумя соседними башнями 1 метр. Некоторое время шел снег, прежде чем он наконец прекратился. Для двух соседних башен, расположенных на расстоянии 1 метра друг от друга, мы измерили длины частей этих башен, которые не покрыты снегом, и получили a метров для западной башни и b метров для восточной башни. Предполагая, что толщина снежного покрова и высота над уровнем моря одинаковы во всем населенном пункте, найдите общую глубину снежного покрова. Предположим также, что глубина снежного покрова всегда составляет не менее 1 метра.

Входные данные
Во входной строке содержится два целых чисел a и b (\(1\leq a<b<499500=1+2+3+...+999\)). Все входные данные удовлетворяют условию задачи.

Выходные данные
Выведите глубину снежного покрова.
 

 

Примеры
Входные данные Выходные данные Пояснение
1 8 13 2 Высота двух башен - 10 метров и 15 метров соответственно. Таким образом, мы видим, что глубина снежного покрова составляет 2 метра.
2 54 65 1  

 

✓ 76✗ 155700средняяВойти и решать
Громозека любит соревнования по программированию. Сегодня он примет участие в конкурсе в STCoder. На этой площадке используются 24-часовые часы. Например, 21:00. обозначается как «21 o'clock».
Текущее время - A часов, а соревнование начнется ровно через B часов. Определите время начала соревнования? Ответ дайте в 24-часовом формате.

Входные данные
Во входной строке содержится два целых числа A и B (\(0<=A,B<=23\)), записанных через один пробел.

Выходные данные
Выведите час начала конкурса в 24-часовом формате.
 

 

Примеры
Входные данные Выходные данные
1 9 12 21
2 19 0 19
3 23 2 1

 

Черепашка ползет по полу, который уложен квадратной плиткой со стороной A см. Начало пути Черепахи в точке X. Черепашка успела проползти расстояние D см, прежде чем хозяин взял ее на руки. Определите сколько клеток (частично или целых) успела проползти Черепашка.

Входные данные
Первая строка содержит число A – длина стороны одной плитки. Вторая строка содержит число X - координата точки, с которой Черепашка начала свой путь. Третья строка - число D - расстояние, которое проползла Черепаха. Ось OX направлена вправо. Крайняя плитка в ряду, по которому ползет Черепашка находится в начале координат. Все числа целые, не превосходящие \(2\cdot10^9 \), числа A, D – положительные, число X – положительное или равно 0.

Выходные данные
Вывести одно число – количество плиток, которые Черепашка полностью или частично успела проползти.
Считается, что Черепашка проползла плитку, если условно проведенная линия пути Черепашки имеет ненулевую длину, то есть касание линии пути и края плитки не считается.

 

Примеры
Входные данные Выходные данные Пояснение
1 10
15
35
4 Сторона плитки (сторона клетки на рисунке) А = 10.
Черепашка начала движение с координаты Х = 15, и прошла 35.
Черепаха прошла полностью или частично 4 плитки.

 

Для хранения текста в памяти компьютера отводится целое число байт. Текст занимает N бит. Какое минимальное число байт потребуется для хранения данного текста? Напишите программу.

Входные данные
Вводится целое число N

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

Примеры
Входные данные Выходные данные
1 8 1
2 9 2
 
 
У вас есть целочисленная переменная x. Первоначально \(x = 0\). Кто-то дал вам строку S длины N, и, используя эту строку, вы выполнили следующую операцию N раз. В i-й операции вы увеличили значение x на 1, если Si = I, и уменьшили значение x на 1, если Si = D. Найдите максимальное значение, которое принимает x во время операций (в том числе до первой операции и после последней операции).

Формат входных данных
В первой строке задается число (\(1<=N<=100\)), во второй - строка S. Длина строки N. Строка содержит только символы и D.

Формат выходных данных
Выведите максимальное значение x, полученное во время операций.
Вам даны два целых числа K и S. Три переменные X, Y и Z принимают целые значения, удовлетворяющие условию \(0<=X,Y,Z<=K\). Сколько существует различных значений X, Y и Z, таких что \(X+Y+Z=S\)?

Входные данные
На вход подается два целых числа K (\(2<=K<=2500\)) и (\(0<=S<=3\cdot K\)).

Выходные данные
Выведите количество троек X, Y и Z, удовлетворяющих условию.
 

 

Примеры
Входные данные Выходные данные Пояснения
1 2 2 6 Есть шесть троек X, Y и Z, которые удовлетворяют условию:
Х = 0, Y = 0, Z = 2
Х = 0, Y = 2, Z = 0
Х = 2, Y = 0, Z = 0
Х = 0, Y = 1, Z = 1
Х = 1, Y = 0, Z = 1
Х = 1, Y = 1, Z = 0
2 5 15 1 Лишь одна тройка удовлетворяют условию задачи:
Х = 5, Y = 5, Z = 5

 

Вам дано положительное целое число (\(1<=N<=10^{18}\)). Найдите количество пар целых чисел u и v (\(0<=u, v<=N\)) таких, что существуют два неотрицательных целых числа a и b, удовлетворяющих \(a\ xor\ b=u\) и \(a+b=v\). Здесь xor обозначает побитовое исключающее ИЛИ. Поскольку ответ может быть очень большим, вычислите его по модулю \(10^9+7\).

Входные данные
На вход подается положительное целое число (\(1<=N<=10^{18}\)).

Выходные данные
Выведите количество возможных пар целых чисел u и v (\(0<=u, v<=N\)) , по модулю \(10^9+7\).
 

 

Примеры
Входные данные Выходные данные Пояснения
1 3 5 u=0,v=0 (Пусть a=0,b=0, тогда 0 xor 0=0, 0+0=0)
u=0,v=2 (Пусть a=1,b=1, тогда 1 xor 1=0, 1+1=2)
u=1,v=1 (Пусть a=1,b=0, тогда 1 xor 0=1, 1+0=1)
u=2,v=2 (Пусть a=2,b=0, тогда 2 xor 0=2, 2+0=2)
u=3,v=3 (Пусть a=3,b=0, тогда 3 xor 0=3, 3+0=3)
2 1422 52277  
3 1000000000000000000 787014179  

 

Колоссально! — воскликнул горбоносый. — Программист! Нам нужен именно программист.
Аркадий и Борис Стругацкие, Понедельник начинается в субботу
Изучая книгу «Уравнения математической магии» Роман Ойра-Ойра и Кристобаль Хунта обнаружили интересное уравнение: a−(a⊕x)−x=0 для заданного a, где знаком  ⊕  обозначено побитовое исключающее ИЛИ (XOR) двух чисел (эта операция обозначается как ^ или xor во многих современных языках программирования). Поскольку данное уравнение предназначалось для решения на машине Алдан-3, все вычисления производились над целыми неотрицательными числами по модулю 232. Ойра-Ойра быстро нашел x, являющееся решением, однако Кристобалю Хунте результат Ойры-Ойры показался недостаточно интересным, поэтому он спросил коллегу, сколько всего существует решений данного уравнения. Так как все вычисления производятся по модулю 232, Кристобаля Хунту интересует количество таких решений x, что 0 ≤ x ≤ 232. Такая задача оказалась для Ойры-Ойры слишком сложной, поэтому он обратился за помощью к Вам.

Входные данные
В первой строке задано одно целое число a (0 ≤ a ≤ 232−1).

Выходные данные
Выведите одно целое число — количество неотрицательных решений уравнения.

Примечание
Определим операцию побитового ИЛИ (XOR). Пусть даны два целых неотрицательных числа x и y, рассмотрим их двоичные записи (возможно с ведущими нулями): xk...x2x1x0 и yk...y2y1y0. Здесь xi это i-й бит числа x, а yi это i-й бит числа y. Пусть r=x⊕y — результат операции XOR над числами x и y. Тогда двоичной записью r будет rk...r2r1r0, где:
\(r_i = \begin{cases} 1, & \quad \text{если } x_i \neq y_i \\ 0, & \quad \text{если } x_i = y_i \end{cases} \)

В первом примере решениями уравнения являются 0 и 2147483648=231, так как 0−(0⊕0)−0=0−0−0=0 и 0−(0⊕ 2147483648)−2147483648=−4294967296=−232=0 по модулю 232.

Во втором примере решениями уравнения являются 0, 2, 2147483648=231 и 2147483650=231+2.

В третьем примере решениями являются все x, для которых выполнено 0 ≤ x ≤ 232.
 
Примеры
Входные данные Выходные данные
1 0 2
2 2 4
3 4294967295 4294967296
В ряд расположены N ящиков. Изначально в i-м ящике слева находится ai конфет.  Громозека выбирает ящик, содержащий хотя бы одну конфету, и съедает одну из конфет в выбранном ящике.Он может выполнять это действие любое количество раз. Его цель добиться того, чтобы в любых двух соседних коробках содержалось не более x конфет.
Найдите минимальное количество операций, необходимых для достижения цели Громозеки.

Входные данные
В первом строке задается два числа N (\(2<=N<=10^5\)) и (\(0<=x<=10^9\)).  Во второй строке содержится N целых чисел a(\(0<=a_i<=10^9\)).

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

 

Примеры
Входные данные Выходные данные Пояснения
1 3 3
2 2 2
1 Необходимо съесть одну конфету во второй коробке. Тогда количество конфет в каждой коробке станет (2,1,2).
2 6 1
1 6 1 2 0 4
11 Например, можно съесть шесть конфет во второй коробке, две в четвертой и три в шестой. Тогда количество конфет в каждой коробке станет (1,0,1,0,0,1).
3 5 9
3 1 4 1 5
0 Цель уже достигнута
4 2 0
5 5
10 Все конфеты должны быть съедены.

 

У Громозеки есть N целых чисел a1,a2,..,aN. Его цель -  получить N равных целых чисел, преобразовав некоторые из них. Он может преобразовать каждое целое число не более одного раза. Преобразование целого числа x в другое целое число y стоит ему \((x-y)^2 \) рублей. Даже если \(a_i = a_j\) (\(i \neq j\)) он должен отдельно оплатить стоимость преобразования каждого из них (см. пример 2). 
Найдите минимальную общую стоимость для достижения цели Громозеки.

Входные данные
В первой строке задается число N (\(1<=N<=100\)). Во второй строке числа a1,a2,..,aN (\(100<=a_i<=100\)).

Выходные данные
Выведите минимальную общую стоимость для достижения цели Громозеки.
 

 

Примеры
Входные данные Выходные данные Пояснения
1 2
4 8
8 Минимальная по сумме трансформация обоих чисел - это преобразование каждого числа в 6 будет: (4-6)2+(8-6)2=8 рублей.
2 3
1 1 3
3 Трансформируем все числа в 2: (1-2)2+(1-2)2+(3-2)2=3  рубля. Громозека обязан заплатить \((1-2)^2\) рубля за каждое преобразованное число 1.
3 3
4 2 5
5 Трасформируем 2 и 5 в число 4: (2-4)2+(5-4)2=5 рублей. 
4 4
-100 -100 -100 -100
0 Ничего не надо преобразовывать.

 

В детском саду Сластена N детей. Анна Николаевна выстраивает детей в линию, затем раздает 1 конфету первому ребенку, 2 конфеты второму ребенку, ..., N конфет N-му ребенку. Сколько всего конфет потребуется Анне Николаевне?

Входные данные
На вход подается целое число N (\(1 <= N <=100\)).

Выходные данные
Выведите на экран ответ на задачу.
 

 

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

 

Новый квест, в котором участники должны выбраться с территории проведения, представляет собой прямоугольник из N × M комнат. Каждая комната имеет четыре двери, ведущие в соседние комнаты, из комнат на краю прямоугольника двери ведут наружу, через эти двери можно
покинуть территорию проведения квеста.
В начале квеста в каждой комнате находится по человеку, а все двери заперты. После начала квеста организаторы дистанционно открывают в каждой комнате запирающий механизм одной из четырёх дверей. Теперь человек, находящийся в этой комнате, может открыть эту дверь и перейти
в соседнюю комнату, через другие три двери выйти из этой комнаты нельзя. При этом может оказаться так, что дверь, соединяющая две комнаты, будет отпираться только с одной стороны, тогда пройти через эту дверь можно только с той стороны, с которой она будет открываться, проходить
через дверь в обратном направлении нельзя, если в соседней комнате будет отперта не эта дверь, а какая-то другая. Если комната находится на краю территории и из этой комнаты открыта дверь наружу, то, пройдя через эту дверь, участник навсегда покидает территорию квеста.
После начала квеста и отпирания дверей участники начинают перемещаться между комнатами. Каждый участник перемещается в соседнюю открытую комнату и продолжает перемещаться до тех пор, пока не покинет территорию квеста. Однако возможна ситуация, когда некоторые участники будут бесконечно перемещаться между комнатами и никогда не выйдут наружу.
Разработчики квеста попросили Вас составить такой план отпирания дверей, при котором ровно K человек смогут выбраться наружу с территории квеста.
Входные данные
Программа получает на вход три числа N, M, K, 1 ≤ N ≤ 100, 1 ≤ M ≤ 100, 0 ≤ K ≤ NM. N и M – количество строк и столбцов в прямоугольном плане квеста, K – количество человек, которые должны выйти из квеста.
Выходные данные
Программа должна вывести план территории квеста в виде N строк, каждая из которых должна содержать M символов. Символ соответствует тому, какая дверь будет открыта в данной комнате и может быть одной из следующих заглавных английских букв: U (дверь в верхнюю по данному плану комнату), D (дверь в нижнюю комнату), L (дверь в левую комнату), R (дверь в правую комнату). Необходимо вывести один любой подходящий план решения задачи. Если ни одного подходящего плана не существует, программа должна вывести одну строчку «IMPOSSIBLE».».
 
Примеры
Входные данные Выходные данные Пояснение
1 1
2
1
IMPOSSIBLE Территория квеста состоит из 1 строки и 2 столбцов. При любом
способе открытия дверей из квеста не сможет выбраться ровно один
человек.
2 3
4
5
RDLD
ULUR
DURU
Территория квеста состоит из 3 строк и 4 столбцов. Из квеста
должны выйти 5 человек. На рисунке ниже приведена картинка,
соответствующая ответу из примера. Стрелками обозначены
открытые двери, точками помечены комнаты, обитатели которых
выйдут из квеста.
Некоторый заводской цех представляет собой прямоугольник размером M на N метров (1 <= M, N <= 30). Инженер-конструктор Петя создал робота, который  может перемещаться по территории цеха и выполнять некоторую общественно-полезную работу. Робот может перемещаться только по плитам, размером 1 на 1 метр, которыми выложен пол цеха, и только параллельно осям координат.

У робота есть 4 регистра состояния, A, B, C и D. Каждый регистр может принимать одно из двух значений - TRUE или FALSE. На некоторых плитах цеха стоят радио-триггеры, которые переключают состояние каких-то регистров робота. Также на некоторых других плитах могут находиться радиомаяки, которые в зависимости от истинности формулы, соответствующей данному маяку, заставляют робота повернуть на 90 градусов налево или направо. В случае истинности совершается поворот направо.

Спецслужбы заинтересовались разработкой Пети, и решили проверить пригодность робота для работ в условиях радиации, под водой, в кратерах вулканов, на других планетах и много где еще. Для испытаний из цеха было вынесено все оборудование, поставлено некоторое количество радиомаяков и триггеров. Начиная с некоторой пустой плиты X0, Y0 под начальным углом A0 (0,90,180 или 270 градусов, отсчитывая от направления вверх по часовой стрелке) был запущен робот. Изначально состояния всех регистров робота - FALSE.

Аккумуляторных батарей робота хватит на K (0 < K <= 109) перемещений на соседнюю плиту. После этого он остановится. Кроме того, возможен такой вариант, что Петя неправильно расставил триггеры и маяки, поэтому на некотором шаге робот врежется в стену цеха. Необходимо определить, уцелеет ли робот после испытаний и на какой клетке он остановится в случае положительного ответа на первый вопрос.

Оси координат направлены из левого верхнего угла - точки (1,1) - соответственно вправо и вниз. M - размер цеха по горизонтали, а N - по вертикали. Количество триггеров - P - не превосходит 10000, а радиомаяков - Q - 25.

Входные данные
На первой строке входного файла записаны 8 чисел - M,N,P,Q,K,X0,Y0,A0. Далее на Р строках записаны триггеры в формате "X Y R", где R - название регистра. Далее на Q строках записаны радиомаяки в формате "X Y F", где F - булева функция от переменных A..D длиной не более 250 символов, заданная корректной формулой, причем:

-    A, B, C, D, TRUE, FALSE – корректные формулы
-    Если F – корректная формула, то «(F)» и «NOT F» – корректные формулы 
-    Если F и G – корректные формулы, то «F AND G», «F OR G» и «F XOR G» – корректные формулы 
-    Операция NOT имеет наивысший приоритет, остальные операции имеют одинаковые приоритеты и выполняются слева направо, т.е. A AND NOT B OR C XOR D эквивалентно (((A AND (NOT B)) OR C) XOR D)
-    регистр букв не имеет значения
-    корректная формула не содержит лишних пробелов
Выходные данные
В случае успешного исхода вывести координаты плиты, где остановится робот. В случае краха эксперимента вывести в выходной файл единственное число «-1».
Примеры
Входные данные Выходные данные
1 8 8 1 9 420000001 3 4 180
3 3 A
3 5 FALSE
6 5 FALSE
6 2 FALSE
3 2 A    
3 1 FALSE
1 1 FALSE
1 8 FALSE
2 8 FALSE
2 2 TRUE
3 5


Примечание

В соответствии с рисунком, робот будет двигаться по «восьмерке» суммарной длиной 42 метра. Следовательно, прохождение 42n+1 метра эквивалентно прохождению 1 метра, т.е. робот остановится на плите с координатами 
«3 5».
 
Среди открытого банка задач ЕГЭ по математике есть следующая: по заданным натуральным числам l, r и m вас просят найти целые числа a, b и c, каждое из которых не меньше l и не больше r, и такие, что будет существовать натуральное число n (целое число, большее нуля) такое, что
n · a + b − c = m.
Паша еще только начал готовиться к ЕГЭ и не совсем понимает, как решать подобную задачу. Помогите ему для разных вариантов этой задачи находить подходящие a, b и c.

Формат входных данных
В единственной строке заданы три целых числа l, r и m (1 ≤ l ≤ r ≤ 500 000, 1 ≤ m ≤ 1010).

Формат выходных данных
Выведите три целых числа a, b и c такие, что l ≤ a, b, c ≤ r и существует такое натуральное число n, что n · a + b − c = m. Гарантируется, что такие числа существуют. Если подходящих решений несколько, выведите любое из них.
 
Примеры
Входные данные Выходные данные
1 4 6 13 4 6 5
2 2 3 1 2 2 3

Замечание
В первом примере можно выбрать n = 3, тогда n · 4 + 6 − 5 = 13 = m. Так же возможны такие ответы: a = 4, b = 5, c = 4 (при этом n = 3); a = 5, b = 4, c = 6 (при этом n = 3); a = 6, b = 6, c = 5 (при этом n = 2); a = 6, b = 5, c = 4 (при этом n = 2).
Во втором примере n = 1, тогда n · 2 + 2 − 3 = 1 = m. Число n = 0 не могло быть выбрано, так как число n обязательно должно быть натуральным.
Поделиться
Класснуть