АА13

Задача

В заданной строке поменять местами рядом стоящие символы между собой (1 и 2, 3 и 4 и т.д., для строки нечетной длины, последний символ не менять).

Тесты

Входные данные Выходные данные
123456 214365
abcde badce

Код программы

Решение

Так как объекты класса String являются неизменяемыми, то преобразуем строку в массив символов с помощью метода toCharArray. Далее создаем переменную для временного хранения значений символов, чтобы можно было поменять местами соседние символы строки. Используя цикл, проходим по каждому второму символу строки и меняем его с предыдущим. Измененный массив преобразовываем в строку и выводим.

Ссылки

Код решения

А410е

Задача

Дана целочисленная матрица $ [a_{ij}], ij=1,\ldots,n.$ Получить $b_{1} \dots b_{n},$ где $b_{i}$ — это $\underset{1\leq j\leq n}{\max a_{ij}}\cdot \underset{1\leq j\leq n}{\min a_{ji}}$

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

Первая строка содержит число $n.$ Следующие строки содержат матрицу $n\times n.$

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

Вывести $b_i \; i=1\dots n.$

Тесты

Входные данные Выходные данные
2
1 2
4 1
2 4
3
1 2 3
4 1 -6
1 -2 -1
3 -8 -6

Код программы

Решение

Очевидно, что из заданной матрицы нужно взять максимальный элемент $i$-й строки и умножить его на минимальный элемент $i$-го столбца. Для нахождения максимума [latex]a_{ij}[/latex], введем переменную и будем присваивать ей начальное значение первого элемента $i$-й строки. Чтобы при расчете максимума проходя по элементам строки мы не сравнивали каждый $i$-й элемент с первым, присваивать начальное значение максимуму будем в цикле по $i$. Аналогично с минимумом, но начальное значение минимума будет равно первому элементу $i$-го столбца.

Ссылки

Условие задачи
Код решения

MS9. Шифрование символов

Задача

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

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

Последовательность символов.

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

Зашифрованная последовательность символов, напечатанная через пробел.

Тесты

Входные данные Выходные данные
pack my box with five dozen liquor jugs p 11 2 8 4b 4d 14 59 42 d 17 58 57 1e 1d 1c 48 46 f 1f 13 45 44 b 15 1f b 4e 4c 5 18 4 1a 1d 52 4a 1f 12 14

Код программы

Решение

Объявляем 2 символьные переменные. Считываем первый символ и выводим его. Остальные символы будут считываться в цикле, пока не закончатся данные из потока ввода. По мере ввода запоминаем старый символ во 2 переменной и складываем их по модулю 2 и выводим результат в шестнадцатеричной системе.

Ссылки

Условие задачи
Код решения

e-olimp 2864. Табулирование функции

Задача

Напишите программу, которая выводит на экран таблицу значений функции $y=3\sin (x)$ на промежутке от $a$ до $b$ включительно с шагом $h.$

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

В одной строке через пробел заданы три вещественных числа $a$, $b$ и $h.$

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

В каждой строке выведите по два числа $x$ и $y$ соответственно, по возрастанию $x$ с тремя десятичными знаками.

Тесты

Входные данные Выходные данные
1 2 0.5 1.000 2.524
1.500 2.992
2.000 2.728
0 0 1 0.000 0.000
20 10 5 10.000 -1.632
15.000 1.951
20.000 2.739
-3 -1 1 -3.000 -0.423
-2.000 -2.728
-1.000 -2.524

Код программы

Решение

C помощью цикла от $a$ до $b$ с шагом $h$ выведем на экран таблицу значений функции на заданном промежутке. Для вычисления синусов воспользуемся методом sin() из класса Math.

Ссылки

Условие задачи на e-olymp
Код решения

e-olimp 197. Отрезок и окружности

Задача

На плоскости задана система концентрических окружностей, центры которых находятся в начале координат, а радиусы равны $1,2,3\dots.$ Также на плоскости задан отрезок, концы которого находятся в точках $(X_{1}, Y_{1})$ и $(X_{2}, Y_{2}).$ Необходимо найти число общих точек этого отрезка и указанной системы окружностей.

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

Первая строка входного файла содержит 4 целых числа $X_{1}, Y_{1}, X_{2}, Y_{2}.$ Эти числа не превосходят $10^{3}$ по абсолютной величине. Заданный отрезок имеет ненулевую длину.

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

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

Тесты

Входные данные Выходные данные
-1 -1 1 1 2
-1 1 1 1 1
1 1 2 1 1
-5 -5 5 -5 5
-10 10 -10 10 28

Код программы

Решение

Для начала рассмотрим первое условие. Пусть наш отрезок таков, что при движении от одного края к другому, расстояние до начала координат возрастает. Для такого отрезка ответ очевиден — это количество целых чисел между расстояниями от начала координат до обоих концов отрезка. Условие из шестнадцатой строчки кода получилось путем приведения подобных и раскрытия скобок следующих неравенств: $x_{1}^{2}+y_{1}^{2}-x_{2}^{2}-y_{2}^{2}+(x_{1}-x_{2})^{2}+(y_{1}-y_{2})^{2}<0$ и $-x_{1}^{2}-y_{1}^{2}+x_{2}^{2}+y_{2}^{2}+(x_{1}-x_{2})^{2}+(y_{1}-y_{2})^{2}<0.$

Иначе сведем данную задачу к рассмотренной выше. Для этого необходимо найти на отрезке точку, ближайшую к началу координат. Таким образом исходный отрезок разбивается на два новых, для которых выполнено условие из простой задачи. Также следует рассмотреть крайний случай, а именно, если ближайшая к $(0,0)$ точка находится на целом расстоянии от начала координат. В этом случае мы посчитаем это пересечение дважды, поэтому необходимо уменьшить ответ на единицу.

Стоит заметить, что находить саму ближайшую точку нет необходимости. Достаточно найти лишь расстояние до нее. Также мы добавляем маленькую константу
$\varepsilon = 10^{-8}$ к большему расстоянию до конца отрезка и отнимаем из меньшего, чтобы избежать случая нахождения какой-либо точки отрезка на окружности. В противном случае решение задачи будет работать не корректно.

Ссылки

Условие задачи на e-olymp
Код решения

e-olimp 146. Квадраты — 2

Задача

В белом квадрате $N$ раз выполнили одну и ту же операцию: один из наименьших белых квадратов разбили на 4 одинаковых квадрата и 2 из них закрасили черным цветом. Для данного $N$ вычислить, сколько процентов занимает площадь черной фигуры.

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

Во входном файле одно число $N.$ $1\leq N\leq 100.$

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

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

Тесты

Входные данные Выходные данные
1 50.00000
3 65.62500
10 66.66660
50 66.66667

Код программы

Решение

При $N=1$ площадь черной фигуры составляет $50\%$. При $N=2$ площадь фигуры равна $50\% + 50\% \cdot \frac{1}{4}$. При $N=3$ площадь черной фигуры составляет $50\% + 50\% \cdot \frac{1}{4}+50\% \cdot \frac{1}{16}$. Очевидно, что перед нами геометрическая прогрессия. Процент, занимаемый площадью черной фигуры, будем искать через сумму геометрической прогресcии: $S_{n}=\frac{b_{1}(1-q^{N})}{1-q}$, где ,$q=\frac{b_{2}}{b_{1}}=\frac{12.5}{50}=0.25,$ $N-$ кол-во операций.

Ссылки

Условие задачи на e-olymp
Код решения