Плюсануть
Поделиться
Класснуть
Запинить


Олимпиадный тренинг

Вы можете самостоятельно решать эти задачи столько раз, сколько вам это понадобится.
   

Башни 2.0

Задача на реализацию Структуры данных Структуры данных Алгоритмы обработки Линейные алгоритмы Алгоритмы обработки

В компьютерной игре есть n башен, высота i-й башни равна ai метров. Определим расстояние между двумя башнями с индексами i и j как |i−j|. Разрешается прыгнуть с i-й башни на j-ю башню тогда и только тогда, когда не существует такого индекса 1 <= k <= n, такого, что расстояние от i-й до j-й башни не меньше расстояния от i-й башни до k-й башни, и k-я башня имеет большую высоту, чем j-я. Башня j достижима из башни i если существует последовательность корректных прыжков, которая начинается в i-й башне и заканчивается в j-й. Посчитайте для каждой башни количество достижимых из неё башен, включая её саму.


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

Первая строка входных данных содержит одно целое число n (1 <= <= 500000) - количество башен.

Вторая строка входных данных содержит n чисел a1, a2, ..., an (1 <= a<= 109) - высоты башен.


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

В первом примере с 1-й башни можно прыгнуть на башни 1 и 5. Любая другая башня имеет меньшую высоту, чем башня 1, поэтому туда нельзя прыгнуть (в качестве k можно выбрать 1). Множество достижимых из 1-й башни также состоит из башен 1 и 5. Со второй башни можно прыгнуть на башни 1, 2, и 5, они же являются множеством достижимых. С третьей башни можно прыгнуть на башни 2, 3, 5. Однако, башня 1 также является достижимой, поскольку можно сделать два прыжка: 3→2→1. Таким образом, получается 4 достижимые башни. С 4-й башни можно прыгнуть на башни 4 и 5, они же являются единственными достижимыми. Из 5-й башни достижима только она сама.

Во втором примере из 1-й и из 2-й башни достижимы башни 1,2,3,4,5. Из 3-й башни достижимы башни 3,4,5. Из 4-й и 5-й башни достижимы башни 4,5. Из 6-й башни достижимы башни 4,5,6. Из 7-й башни достижимы башни 4,5,6,7.

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

Контрольное значение кратное 14

Линейные алгоритмы

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

 
Формат входных данных
В первой строке записано количество чисел N (1 ≤ N ≤ 100000). Каждая из следующих N строк содержит одно натуральное число, не превышающее 1000.


Формат выходных данных
Выведите одно число - контрольное значение.

Перекошенное разбиение

Жадный алгоритм Линейные алгоритмы

Дан массив \([a_1, a_2, \ldots, a_n]\), состоящий из неотрицательных целых чисел.

Рассмотрим разбиение массива на \(k\) непустых отрезков подряд идущих элементов. Назовем перекосом разбиения разность между максимальной и минимальной суммой чисел в отрезках разбиения. Требуется найти максимальный перекос разбиения данного массива на \(k\) подотрезков.

Например, если массив равен \([2, 1, 3, 4]\), то у разбиения \([2, 1, 3][4]\) перекос равен \(6-4=2\), у разбиения \([2, 1] [3, 4]\) перекос равен \(7-3=4\), а у разбиения \([2] [1, 3, 4]\) перекос равен \(8-2=6\). Последний вариант является оптимальным среди всех разбиений массива на два непустых отрезка.

Формат входных данных
Первая строка содержит два целых числа \(n\) и \(k\) (\(2 \le k \le n \le 300\,000\)) — длину массива и количество подотрезков, соответственно.

Вторая строка содержит \(n\) целых чисел \(a_i\) (\(0 \le a_i \le 10^9\)) — элементы массива.

Формат выходных данных
Выведите одно число — максимальный перекос разбиения данного массива на \(k\) отрезков.

Примечание
Первый пример разобран в условии задачи.

Во втором примере оптимальным разбиением является \([2][1][3, 4][1]\). Максимальная сумма на подотрезках в данном разбиении равна \(3 + 4 = 7\), минимальная сумма равна \(1\), таким образом, перекос равен \(6\).

Самокат

Жадный алгоритм Линейные алгоритмы

В городе Новый Нижгород открылась новая служба доставки еды с оригинальным названием <<Камосат>>. Курьеры этой службы передвигаются на самокатах и стремятся максимально эффективно доставлять заказы клиентам.

Для того чтобы упростить задачу планирования маршрутов, был разработан алгоритм, основанный на топографии города. Город расположен вдоль реки, поэтому его можно представить одномерным массивом, где каждый элемент массива — это высота местности в соответствующей точке. Расстояние между двумя соседними точками считается равным \(1\).

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

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

Формат входных данных
Первая строка содержит одно целое число \(n\) (\(2 \leq n \leq 300\,000\)) — количество точек в городе.

Вторая строка содержит \(n\) целых чисел \(h_1, h_2, \ldots, h_n\) (\(-10^9 \leq h_i \leq 10^9\)) — высоты точек города.

Формат выходных данных
Выведите одно целое число — максимальное расстояние, которое может преодолеть курьер.

Замечание

В первом примере курьер может стартовать в третьей точке с высотой \(6\) и проехать по высотам \(6\rightarrow2\rightarrow1\).

Во втором примере курьер не может никуда проехать, потому что можно посещать только те точки, где высота меньше, чем в точке старта.

В третьем примере курьер может проехать по высотам \(5\rightarrow2\rightarrow3\rightarrow4\).

Необычная сортировка

Алгоритмы сортировки Идеи Линейные алгоритмы

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

Для этого Магане может один раз выбрать произвольный набор различных позиций в массиве и заменить элементы на этих позициях на противоположные, то есть умножить их на \(-1\). Например, чтобы сделать массив \([-4, 4, 1, 3, -10]\) отсортированным, она может умножить на \(-1\) числа на позициях \(2\) и \(5\), и получить массив \([-4, -4, 1, 3, 10]\).

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

Помогите ей с этой задачей! Поскольку итоговое количество способов может быть слишком большим, найдите ответ по модулю \(998244353\).

В первой строке ввода записано целое число \(n\) — количество элементов в массиве (\(1 \leqslant n \leqslant 10^6\)).

Формат входных данных
Во второй строке через пробел перечислены \(n\) целых чисел \(a_1\), \(a_2\), …, \(a_n\) — элементы массива (\(-10^9 \leqslant a_i \leqslant 10^9\)).

Формат выходных данных
Выведите одно число — количество способов отсортировать массив указанным образом (по модулю \(998244353\)).

 

Вычисление арифметического выражения (py) - 4

Линейные алгоритмы

Определите, чему будет равно значение переменной rez?

rez = {1} // {2} % ({3})

Вычисление арифметического выражения (py) - 3

Линейные алгоритмы

Определите, чему будет равно значение переменной rez?

rez = {1} // ({2}) % {3}

Вычисление арифметического выражения (py) - 2

Линейные алгоритмы

Определите, чему будет равно значение переменной rez?

rez = {1} // ({2}) % {3}

Как программы на самом деле создают результаты?

Линейные алгоритмы

Как программы на самом деле создают результаты?

  1. Они создают результаты, манипулируя данными (считывая, изменяя и записывая их).
     
  2. Они создают результаты, выполняя только вычислительные операции.
     
  3. Они создают результаты, обрабатывая только данные, введенные пользователем.
     
  4. Они создают результаты, обрабатывая данные исключительно из файлов.

Расчет асимптотики - 9

Линейные алгоритмы

Для приведенного ниже кода, найдите асимптотику:

#include <bits/stdc++.h>
using namespace std;

int main()
{
	int n, m;
	vector < vector<int> > up1(n, vector <int>(m));
	int ans = 0;
	for (int i = 1; i <= n; i++)
	{
		vector <int> L(m + 1, 1), R(m + 1, m);
		stack <int> q;
		for (int j = 1; j <= m; j++)
		{
			while (!q.empty() && up1[i][j] < up1[i][q.top()])
			{
				R[q.top()] = j - 1;
				q.pop();
			}
			q.push(j);
		}
		while (!q.empty())
			q.pop();
		for (int j = m; j >= 1; j--)
		{
			while (!q.empty() && up1[i][j] < up1[i][q.top()])
			{
				L[q.top()] = j + 1;
				q.pop();
			}
			q.push(j);
		}
		for (int j = 1; j <= m; j++)
			ans = max(ans, up1[i][j] * (R[j] - L[j] + 1));
	}
	cout << ans;
	return 0;
}

1) O(n + m)      2) O(nm)       3) O(n^2*m)      4) O(n*m^2)

23361

Линейные алгоритмы

Выберите НЕверное утверждение:

1. Алгоритм приводит от исходных данных к результату
2. Алгоритм не должен обладать всеми свойствами сразу же
3. Алгоритм должен быть массовым
4. Алгоритм должен быть понятным

23359

Линейные алгоритмы

Выберите верное утверждение:

1. Алгоритм не всегда приносит результат
2. Алгоритмы пишутся только для неформальных исполнителей
3. Алгоритм должен быть написан для конкретного исполнителя 
4. Алгоритм не обязательно должен обладать свойством определенности

23358

Линейные алгоритмы

Кто (что) может выступать в роли исполнителя алгоритма?

1. человек или животное
2. человек, животное, техническое устройство
3. объекты живой и неживой природы
4. компьютер или человек

23356

Линейные алгоритмы

Блок ввода и вывода данных в блок-схеме изображается с помощью ...

1. овала
2. параллелограмма
3. ромба
4. прямоугольника

23355

Линейные алгоритмы

Блок начала и конца алгоритма в блок-схеме изображается с помощью ...

1. овала
2. параллелограмма
3. ромба
4. прямоугольника

23354

Линейные алгоритмы

Блок проверки условия в блок-схеме изображается с помощью ...

1. овала
2. параллелограмма
3. ромба
4. прямоугольника

23353

Линейные алгоритмы

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

1. структурограммой
2. блок-схемой
3. таблицей
4. рисунком

23351

Линейные алгоритмы

Словесные способы описания алгоритма делятся на ..

1. словесное описание и построчная запись
2. устные и письменные
3. алгоритмы и описания
4. текстовые и графические

23350

Линейные алгоритмы

Основными способами записи алгоритмов являются ...

1. словесные, текстовые, графические, алгоритмические
2. алгоритмические, текстовые, графические
3. устные, письменные, графические
4. словесные, графические, на алгоритмических языках

23349

Линейные алгоритмы

Что такое алгоритм?

1. предписание исполнителю выполнить определенный набор команд
2. точное и понятное предписание по выполнению некоторых действий
3. точное предписание исполнителю выполнить набор команд
4. точное предписание исполнителю выполнить набор команд за определенное время

23348

Линейные алгоритмы

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

1. массовость
2. определенность
3. дискретность
4. результативность

23347

Линейные алгоритмы

Какое свойство означает, что алгоритм должен обязательно приводить к результату?

1. массовость
2. определенность
3. дискретность
4. результативность

23346

Линейные алгоритмы

Какое свойство означает однозначность алгоритма?

1. точность
2. определенность
3. дискретность
4. понятность

23345

Линейные алгоритмы

Какое свойство означает, что алгоритм состоит только из СКИ?

1. понятность
2. точность
3. дискретность
4. массовость

23344

Линейные алгоритмы

Какое свойство означает разбиение алгоритма на некоторые шаги?

1. делимость
2. точность
3. дискретность
4. массовость

23343

Линейные алгоритмы

Какими свойствами должен обладать алгоритм?

1. определенность, массовость, результативность, ясность, дискретизированность
2. понятность, дискретность, определенность, результативность, массовсть
3. дискретизированность, понятность, определеннность, массовость, точность
4. дискретность, ясность, точность, понятность, результативность

23342

Линейные алгоритмы

Укажите верную последовательность разработки алгоритма

1. определение исходных данных и результата - определение объектов - установление свойств и связей - определение последовательности действий - запись алгоритма с помощью команд
2. определение объектов - установление свойств и связей - определение исходных данных и результата - запись алгоритма с помощью команд
3. определение исходных данных и результата - установление свойств и связей - определение объектов - определение последовательности действий - запись алгоритма с помощью команд
4. определение объектов - установление свойств и связей - определение исходных данных и результата - определение последовательности действий - запись алгоритма с помощью команд

23341

Линейные алгоритмы

Животное является ...

1. формальным исполнителем
2. традиционным исполнителем
3. неформальным исполнителем
4. одноформальным исполнителем

23337

Линейные алгоритмы

Какая последовательность является верной?

1. исходные данные - результат
2. исходные данные - алгоритм - результат
3. алгоритм - исходные данные - результат
4. алгоритм - результат

21869

Линейные алгоритмы

Управление с обратной связью может описываться:

1. только линейными алгоритмами
2. линейными и цикличекими алгоритмами
3. линейными, ветвящимися и циклическими алгоритмами
4. любыми алгоритмами

21868

Линейные алгоритмы

Управление с прямой связью может описываться:

1. только линейными алгоритмами
2. линейными и цикличекими алгоритмами
3. линейными, ветвящимися и циклическими алгоритмами
4. любыми алгоритмами

525

Линейные алгоритмы

Определите значения переменных после выполнения серии операторов (a и b описаны как float).
a=-7; b=a/2;
a=(a+b)/2;
b=a-b;
printf(“%lf, %lf \n”, a, b);

1) a=-5,25, b=-1,75
2)a=-3,5, b=-1,75
3)a=-1,75, b=-5,25
2)a=1,75, b=-3,5

Clumsy Cows

Линейные алгоритмы


Определите минимальное количество символов в строке из круглых скобок, которые нужно заменить на противоположный ( левую скобку на правую, или наоборот) , чтобы получить сбалансированную строку.
Существует несколько способов определить сбалансированную строку скобок. Например, такой: В строке должно быть одинаковое количество левых и правых скобок, и для любого ее префикса количество левых скобок должно быть не меньше, чем количество правых скобок.
Например, эти строки - сбалансированные () (()) ()(()())
А эти - нет: )( ())( ((())))
PROBLEM NAME: clumsy
Формат входных данных
* Строка 1: строка из скобок длиной не более 100,000 символов.


Формат выходных данных
* Строка 1: Одно целое число - минимальное количество скобок, которые нужно "переключить" , чтобы конвертировать заданную строку в сбалансированную.


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

Явка на референдуме

Линейные алгоритмы

В городе проводится референдум. Известно общее число зарегистрированных избирателей. Для каждого избирателя известно, пришёл ли он на участок: 1 — пришёл, 0 — не пришёл.
Определите явку в процентах (округлить вниз до целого числа) и выведите, состоялся ли референдум (явка строго больше 50%).
 

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

Первая строка — целое число N (1 <= N <= 10000) — число зарегистрированных избирателей.
Каждая из следующих N строк содержит одно число (0 или 1).
 

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

Первая строка — явка в процентах (целое число, округлённое вниз).
Вторая строка — YES, если референдум состоялся, NO иначе.

Борщ в столовой

Линейные алгоритмы

В университетской столовой осталось K порций борща. В очереди стоят студенты, каждый хочет съесть определённое количество порций (голодные студенты бывают!).

Студент подходит к раздаче:
- Если борща хватает на его запрос - он получает всё и уходит СЧАСТЛИВЫМ
- Если борща осталось меньше, но хоть что-то есть - забирает остатки и уходит ГОЛОДНЫМ  
- Если борща совсем нет - уходит ЗЛЫМ

После обслуживания всех студентов повар хочет знать:
1. Сколько студентов ушли СЧАСТЛИВЫМИ
2. Сколько студентов ушли ГОЛОДНЫМИ
3. Сколько студентов ушли ЗЛЫМИ
4. Сколько порций борща осталось

Пояснение к примеру
- Было 10 порций
- Студент 1 хочет 3: получает 3, осталось 7 (СЧАСТЛИВ)
- Студент 2 хочет 5: получает 5, осталось 2 (СЧАСТЛИВ)  
- Студент 3 хочет 4: получает только 2, осталось 0 (ГОЛОДЕН)
- Студент 4 хочет 2: борща нет (ЗОЛ)
- Итого: 2 счастливых, 1 голодный, 1 злой, 0 остаток

 

Узор на окне

Линейные алгоритмы

Матроскин украшает окно к Новому году. Окно представляет собой сетку N×M клеток. Он хочет нарисовать рамку по периметру окна (все крайние клетки) специальной краской. Сколько клеток нужно закрасить?

Входные данные: Два целых числа N и M (1 ≤ N, M ≤ 1000) — размеры окна. Каждое число записано в отдельной строке.

Выходные данные: Количество клеток в рамке.

Новогодняя ёлка

Линейные алгоритмы

Почтальон Печкин принёс в Простоквашино ёлку высотой H сантиметров. Каждый день ёлка осыпается и становится ниже на D сантиметров, но не может стать ниже нуля. Новый год наступит через N дней.

Какой высоты будет ёлка в новогоднюю ночь (после N дней осыпания)?

Входные данные: Три целых числа H, D, N (1 ≤ H ≤ 1000, 1 ≤ D ≤ 100, 1 ≤ N ≤ 100). Каждое число записано в отдельной строке.

Выходные данные: Высота ёлки в новогоднюю ночь.

Кто сказал "Кто-там"?

Линейные алгоритмы

Галчонок выучил N не обязательно разных слов и говорит их по очереди, повторяя циклически. Матроскин хочет узнать, сколько раз за день Галчонок скажет слово «kto-tam», если всего за день он произносит K слов.

Входные данные: В первой строке число N, во второй число K (1 ≤ N ≤ 100, 1 ≤ K ≤ 109) — количество слов, которые повторяет Галчонок и общее количество произнесённых слов. В следующих N строках записаны слова Галчонка в том порядке, как он их повторяет (строки состоят из маленьких латинских букв и дефисов, длиной до 20 символов).

Выходные данные: Сколько раз Галчонок скажет «kto-tam».

Бутерброды Матроскина

Линейные алгоритмы

Матроскин готовит бутерброды для новогоднего стола. У него есть N кусков хлеба и M кусков колбасы. На каждый бутерброд нужен один кусок хлеба и два куска колбасы. Сколько бутербродов сможет приготовить Матроскин?

Входные данные: Два целых числа N и M (0 ≤ N, M ≤ 1000) — количество кусков хлеба и колбасы.  Каждое число записано в отдельной строке.

Выходные данные: Одно число — максимальное количество бутербродов.

Температура в доме

Линейные алгоритмы

Печка в Простоквашино работает интересно: каждый час она повышает температуру в доме на A градусов, но из-за щелей в стенах за тот же час уходит B градусов тепла. Сейчас в доме T градусов.

Матроскин считает, что комфортная температура — не меньше C градусов. Определите, будет ли в доме когда-нибудь комфортно, и если да — через сколько полных часов.

Входные данные: Четыре целых числа T, A, B, C (−50 ≤ T ≤ 50, 1 ≤ A ≤ 10, 1 ≤ B ≤ 10, 1 ≤ C ≤ 50) — начальная температура, прирост от печки, потери тепла и желаемая температура. Каждое число вводится в отдельной строке.

Выходные данные: Число часов до достижения комфортной температуры, или «Никогда», если температура не достигнет нужной.

Дрова для печки

Линейные алгоритмы

Кот Матроскин заготавливает дрова на зиму. Печка Галчонка потребляет ровно K поленьев в день. Матроскин заготовил N поленьев и хочет узнать, на сколько полных дней хватит дров.

Входные данные: Вводятся два целых числа N и K (1 ≤ N ≤ 10000, 1 ≤ K ≤ 100) — количество заготовленных поленьев и дневной расход. Каждое число записано в отдельной строке.

Выходные данные: Одно число — количество полных дней, на которые хватит дров.

Цветочек

Цикл for Линейные алгоритмы реализация

Нарисуйте цветочек из шести окружностей

  1. Начало в (0, 0), перо опущено.
  2. Нарисуйте окружность радиусом 100.
  3. Поверните Черепашку на 60 градусов влево
  4. Повторите пункты 2-3 шесть раз

Лесенка

Линейные алгоритмы

Нарисуйте лесенку из трёх ступенек

  • Начинаем в (0, 0).
  • Черепашка последовательно идёт: вперед 30, поворот налево, вверх 20, поворот направо, повторить три раза.
  • Горизонтальная часть лесенки должна быть толщиной 5 точек, вертикальная - 3 точки
     

Н

Линейные алгоритмы Задача на реализацию

Нарисуйте букву "H" из трёх линий

  • Начальная точка: (0, 0)

  • Черепашка идёт вверх 100 (левая вертикаль), затем перемещается в (0, 50) без рисования,

  • Рисует горизонтальную линию вправо 50 (перекладина),

  • Перемещается в (50, 0) без рисования,

  • Рисует вертикаль вверх 100 (правая).

Буква должна состоять ровно из трех линий!

L

Линейные алгоритмы

Нарисуйте букву "L"

  • Начало в (0, 0), перо опущено.
  • Из начально точки черепашка рисует линии в следующей последовательности:
    - Вниз 100 пикселей.
    - Вправо 50 пикселей.
Не используйте команду goto(). 

Линия - Копия

Линейные алгоритмы

Нарисуйте линию от точки (0, 0) до точки (100, 0). 

Прыжки по ступенькам

Цикл while Линейные алгоритмы

Робот стоит на ступеньке номер X и должен добраться до ступеньки номер Y. Он может прыгать только на Z ступенек вниз за раз. Напишите программу, которая выводит номер ступеньки после каждого прыжка (если робот не может добраться точно до Y, он останавливается на ближайшей возможной ступеньке).

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

  • X — начальная ступенька - целое число не больше 100

  • Y — целевая ступенька - целое число не больше 10

  • Z — размер прыжка - целое число не больше 10
    Каждое число в отдельной строке.

Выходные данные: номер ступеньки после каждого прыжка (каждое число на новой строке)

J. Keep talking and nobody explodes – hard

Линейные алгоритмы

This is an unusual problem in an unusual contest, here is the announcement: http://cf.m27.workers.dev/blog/entry/73543

You have the safe lock which consists of 100 decimal digits. If you rotate some digit, it increases by one, except 9 which becomes 0.

Initially, the lock contains number \(x\). To unlock the safe you must do the following operations in order (and be careful, don't mix up if and else statements).

If digit 39 is odd, rotate digit 39 by 9 times, else rotate digit 37 by 1 times. If digit 24 is odd, rotate digit 24 by 1 times, else rotate digit 76 by 3 times. If sum of digits 13 and 91 is greater than 10, rotate digit 14 by 6 times, else rotate digit 34 by 8 times. If digit 87 is odd, rotate digit 87 by 7 times, else rotate digit 22 by 9 times. If digit 79 is greater than digit 15, rotate digit 74 by 7 times, else rotate digit 84 by 6 times. If sum of digits 26 and 66 is greater than 9, rotate digit 31 by 7 times, else rotate digit 95 by 4 times. If sum of digits 53 and 1 is greater than 8, rotate digit 66 by 1 times, else rotate digit 94 by 6 times. If digit 41 is greater than digit 29, rotate digit 67 by 5 times, else rotate digit 41 by 9 times. If sum of digits 79 and 20 is greater than 10, rotate digit 18 by 2 times, else rotate digit 72 by 9 times. If sum of digits 14 and 24 is greater than 10, rotate digit 64 by 2 times, else rotate digit 84 by 2 times. If digit 16 is greater than digit 34, rotate digit 81 by 5 times, else rotate digit 15 by 2 times. If sum of digits 48 and 65 is greater than 9, rotate digit 57 by 2 times, else rotate digit 28 by 5 times. If digit 81 is odd, rotate digit 81 by 5 times, else rotate digit 25 by 4 times. If digit 70 is odd, rotate digit 70 by 9 times, else rotate digit 93 by 3 times. If sum of digits 92 and 49 is greater than 9, rotate digit 81 by 2 times, else rotate digit 42 by 3 times. If digit 96 is greater than digit 20, rotate digit 45 by 4 times, else rotate digit 45 by 1 times. If digit 91 is greater than digit 21, rotate digit 60 by 3 times, else rotate digit 72 by 1 times. If digit 89 is greater than digit 7, rotate digit 98 by 9 times, else rotate digit 52 by 7 times. If digit 38 is greater than digit 97, rotate digit 92 by 6 times, else rotate digit 35 by 4 times. If digit 96 is greater than digit 99, rotate digit 42 by 4 times, else rotate digit 40 by 9 times. If digit 86 is odd, rotate digit 86 by 1 times, else rotate digit 14 by 3 times. If digit 23 is odd, rotate digit 23 by 5 times, else rotate digit 55 by 9 times. If digit 79 is odd, rotate digit 79 by 1 times, else rotate digit 29 by 8 times. If digit 4 is greater than digit 91, rotate digit 98 by 8 times, else rotate digit 69 by 4 times. If digit 93 is greater than digit 24, rotate digit 75 by 9 times, else rotate digit 95 by 3 times. If sum of digits 32 and 50 is greater than 10, rotate digit 91 by 3 times, else rotate digit 1 by 5 times. If digit 81 is greater than digit 31, rotate digit 86 by 7 times, else rotate digit 67 by 5 times. If digit 83 is greater than digit 86, rotate digit 48 by 7 times, else rotate digit 2 by 6 times. If digit 20 is greater than digit 88, rotate digit 9 by 2 times, else rotate digit 99 by 4 times. If digit 14 is odd, rotate digit 14 by 5 times, else rotate digit 97 by 7 times. If digit 38 is greater than digit 14, rotate digit 48 by 2 times, else rotate digit 81 by 5 times. If digit 92 is greater than digit 74, rotate digit 92 by 1 times, else rotate digit 50 by 9 times. If digit 76 is greater than digit 89, rotate digit 68 by 6 times, else rotate digit 69 by 5 times. If digit 2 is greater than digit 28, rotate digit 75 by 1 times, else rotate digit 89 by 1 times. If digit 67 is odd, rotate digit 67 by 9 times, else rotate digit 49 by 1 times. If digit 23 is odd, rotate digit 23 by 1 times, else rotate digit 59 by 3 times. If digit 81 is odd, rotate digit 81 by 9 times, else rotate digit 9 by 4 times. If sum of digits 92 and 82 is greater than 9, rotate digit 81 by 2 times, else rotate digit 91 by 5 times. If sum of digits 42 and 48 is greater than 9, rotate digit 35 by 8 times, else rotate digit 59 by 6 times. If digit 55 is odd, rotate digit 55 by 9 times, else rotate digit 61 by 6 times. If digit 83 is odd, rotate digit 83 by 5 times, else rotate digit 85 by 4 times. If digit 96 is odd, rotate digit 96 by 1 times, else rotate digit 72 by 4 times. If digit 17 is odd, rotate digit 17 by 1 times, else rotate digit 28 by 3 times. If digit 85 is greater than digit 74, rotate digit 37 by 3 times, else rotate digit 10 by 3 times. If sum of digits 50 and 67 is greater than 9, rotate digit 85 by 9 times, else rotate digit 42 by 4 times. If sum of digits 11 and 43 is greater than 10, rotate digit 56 by 7 times, else rotate digit 50 by 7 times. If sum of digits 95 and 64 is greater than 9, rotate digit 95 by 4 times, else rotate digit 95 by 9 times. If sum of digits 21 and 16 is greater than 9, rotate digit 87 by 3 times, else rotate digit 30 by 1 times. If digit 91 is odd, rotate digit 91 by 1 times, else rotate digit 77 by 1 times. If digit 95 is greater than digit 82, rotate digit 53 by 2 times, else rotate digit 100 by 5 times. If sum of digits 88 and 66 is greater than 10, rotate digit 34 by 4 times, else rotate digit 57 by 4 times. If digit 73 is greater than digit 84, rotate digit 52 by 3 times, else rotate digit 42 by 9 times. If digit 66 is greater than digit 38, rotate digit 94 by 7 times, else rotate digit 78 by 7 times. If digit 23 is greater than digit 12, rotate digit 78 by 2 times, else rotate digit 62 by 8 times. If digit 13 is greater than digit 9, rotate digit 42 by 7 times, else rotate digit 1 by 9 times. If digit 43 is greater than digit 29, rotate digit 20 by 2 times, else rotate digit 47 by 2 times. If sum of digits 100 and 51 is greater than 8, rotate digit 10 by 6 times, else rotate digit 89 by 1 times. If digit 19 is greater than digit 37, rotate digit 26 by 7 times, else rotate digit 30 by 8 times. If digit 73 is greater than digit 25, rotate digit 77 by 3 times, else rotate digit 41 by 1 times. If sum of digits 67 and 96 is greater than 10, rotate digit 47 by 6 times, else rotate digit 33 by 5 times. If digit 11 is greater than digit 10, rotate digit 33 by 3 times, else rotate digit 4 by 3 times. If digit 85 is odd, rotate digit 85 by 7 times, else rotate digit 37 by 9 times. If digit 14 is odd, rotate digit 14 by 1 times, else rotate digit 28 by 4 times. If sum of digits 30 and 18 is greater than 8, rotate digit 93 by 5 times, else rotate digit 68 by 1 times. If sum of digits 54 and 72 is greater than 8, rotate digit 88 by 8 times, else rotate digit 25 by 8 times. If digit 72 is odd, rotate digit 72 by 5 times, else rotate digit 10 by 3 times. If digit 15 is odd, rotate digit 15 by 3 times, else rotate digit 68 by 1 times. If sum of digits 81 and 31 is greater than 9, rotate digit 2 by 5 times, else rotate digit 35 by 1 times. If digit 57 is odd, rotate digit 57 by 1 times, else rotate digit 25 by 9 times. If sum of digits 75 and 51 is greater than 9, rotate digit 73 by 8 times, else rotate digit 49 by 1 times. If sum of digits 81 and 61 is greater than 10, rotate digit 61 by 3 times, else rotate digit 88 by 1 times. If digit 60 is odd, rotate digit 60 by 1 times, else rotate digit 31 by 2 times. If digit 93 is odd, rotate digit 93 by 5 times, else rotate digit 50 by 1 times. If sum of digits 19 and 82 is greater than 9, rotate digit 48 by 7 times, else rotate digit 88 by 8 times. If digit 45 is odd, rotate digit 45 by 7 times, else rotate digit 100 by 1 times. If digit 46 is greater than digit 71, rotate digit 28 by 8 times, else rotate digit 37 by 6 times. If digit 79 is odd, rotate digit 79 by 5 times, else rotate digit 10 by 1 times. If digit 19 is greater than digit 95, rotate digit 76 by 9 times, else rotate digit 95 by 8 times. If digit 49 is odd, rotate digit 49 by 5 times, else rotate digit 66 by 3 times. If digit 62 is odd, rotate digit 62 by 1 times, else rotate digit 26 by 8 times. If digit 67 is greater than digit 33, rotate digit 27 by 8 times, else rotate digit 96 by 2 times. If sum of digits 73 and 15 is greater than 8, rotate digit 98 by 6 times, else rotate digit 11 by 6 times. If digit 63 is greater than digit 42, rotate digit 66 by 1 times, else rotate digit 58 by 2 times. If digit 41 is odd, rotate digit 41 by 9 times, else rotate digit 99 by 5 times. If digit 93 is odd, rotate digit 93 by 5 times, else rotate digit 53 by 1 times. If digit 46 is odd, rotate digit 46 by 3 times, else rotate digit 64 by 4 times. If sum of digits 99 and 64 is greater than 10, rotate digit 72 by 9 times, else rotate digit 51 by 5 times. If digit 75 is greater than digit 23, rotate digit 89 by 2 times, else rotate digit 76 by 7 times. If digit 6 is odd, rotate digit 6 by 1 times, else rotate digit 44 by 6 times. If digit 58 is odd, rotate digit 58 by 3 times, else rotate digit 49 by 9 times. If digit 5 is greater than digit 13, rotate digit 46 by 9 times, else rotate digit 21 by 7 times. If sum of digits 44 and 94 is greater than 9, rotate digit 36 by 4 times, else rotate digit 15 by 3 times. If sum of digits 52 and 43 is greater than 8, rotate digit 29 by 8 times, else rotate digit 72 by 6 times. If sum of digits 87 and 48 is greater than 9, rotate digit 61 by 8 times, else rotate digit 14 by 3 times. If digit 81 is odd, rotate digit 81 by 7 times, else rotate digit 64 by 2 times. If digit 88 is odd, rotate digit 88 by 7 times, else rotate digit 53 by 9 times. If sum of digits 86 and 78 is greater than 10, rotate digit 96 by 7 times, else rotate digit 79 by 1 times. If digit 20 is odd, rotate digit 20 by 7 times, else rotate digit 2 by 7 times. If digit 77 is greater than digit 80, rotate digit 60 by 5 times, else rotate digit 38 by 8 times. If digit 65 is odd, rotate digit 65 by 1 times, else rotate digit 85 by 3 times.

Input

Input contains single number \(x\) consisting of exactly 100 digits, leading zeroes are allowed.

Output

Output the number after applying all operations.

Поиск минимума кусочной функции

Линейные алгоритмы

Дано количество целых чисел \(n\). Далее в \(n\) строках вводятся целые числа (обозначим их как \(x\)).

Для каждого введённого числа \(x\) необходимо вычислить значение кусочной функции:
$$f(x) = \begin{cases}
(x + 3)^2 - 10, & \text{если } x < -1 \\
-x^2 + 6x - 5, & \text{если } -1 \leq x \leq 5 \\
|x - 8| + 2, & \text{если } x > 5
\end{cases}$$
Найти минимальное значение функции \(f(x)\) среди всех введённых чисел.

Формат входных данных:
Первая строка: \(n\) (\(1 \leq n \leq 100\)). 
Следующие \(n\) строк: целые числа (\(x\)). Каждое число по модулю не превышает по модулю 105.

Формат выходных данных
Два числа через пробел: значение \(x\) и минимальное значение \(f(x)\).

Все кратные пяти

Цикл for Линейные алгоритмы

Выведите все числа, кратные 5, от 0 до 100 включительно.​ Выводите по одному числу в строке

Траты робуксов

Цикл while Линейные алгоритмы

Макс купил премиум-подписку в Roblox и получил Y робуксов. Каждый день он тратит ровно X робуксов на скины и улучшения, если у него есть такая возможность. Напишите программу, которая выводит остаток робуксов на конец каждого дня, пока у него не закончатся робуксы (станет меньше X).​

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

  • X — робуксов тратит в день

  • Y — начальное количество робуксов

Выходные данные: остаток робуксов на конец каждого дня (каждое число на новой строке)

Удваиваем монеты

Цикл while Линейные алгоритмы

Артём играет в игру, где каждый день его монеты удваиваются. Сейчас у него Y монет, и он хочет узнать, сколько монет будет у него каждый день, пока он не накопит хотя бы Z монет.​

Напишите программу, которая выводит количество монет на конец каждого дня (после удвоения).​

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

  • Y — начальное количество монет

  • Z — целевое количество монет

Выходные данные: количество монет на конец каждого дня (каждое число на новой строке)

От а до b. Задача 1

Линейные алгоритмы

Даны три целых числа \(a\), \(b\) и \(c\)
Напишите программу, которая находит количество всех целых чисел от \(a \) до \(b\), которые при целочисленном делении на \(c\) дадут остаток, больший 4

Входные данные: 
В первой строке вводятся три целых числа \(a\), \(b\) и \(c\) (\(a <= b\),  a,b не больше 100 по модулю, 0<=с<=9)

Выходные данные:
Программа должна вывести одно число -  количество всех целых чисел от a до b, которые при целочисленном делении на с дадут остаток, больший 4

Примеры

Входные данные Выходные данные
1 1 10 9 4

Прожектора

Вывод формулы Линейные алгоритмы

На дискотеке в ряд стоят три прожектора, которые поочерёдно светят в следующем порядке: левый, средний, правый, средний, левый, средний, правый, средний и т.д. (слева направо, затем налево, опять направо, ...). Каждый прожектор горит в течение одной секунды.

Известно, что лампа левого прожектора имеет ресурс A секунд горения, среднего – B секунд, правого – С секунд. Определите, сколько времени сможет продолжаться этот процесс горения прожекторов.

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

Программа получает на вход три целых неотрицательных числа A, B, C – время горения левого, среднего, правого прожектора.

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

Программа должна вывести одно целое число.

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

Финальная синхронизация

Цикл while Линейные алгоритмы Цикл for

⏰ Починка машины времени:
[█████████████████░░░] 86% - Модуль 6 из 7 восстановлен
✅ Центральный процессор: СИНХРОНИЗИРОВАН
⚠️ Последний модуль критически важен!

Все модули восстановлены, но машина времени не запускается! Нужен специальный цифровой код синхронизации, который генерируется по древнему алгоритму Хроноса. Этот код создает резонанс между временными потоками! 

Цифровой код состоит из последовательности чисел, которая генерируется по алгоритму, описанному в дневнике Хроноса: 
  • Код начинается с числа, которое отображается на экране.
  • Далее временной поток раздваивается и ускоряется: если предыдущее число было четным, то к нему прибавляется 3 (+3), нечетное число создает квантовый скачок и оно удваивается  (х2).
  • Когда энергия превысит 100 единиц — цифровой код готов!

Напиши программу-генератор кода активации для запуска машины времени. Программа должна считать число и вывести полный цифровой код в одну строку, где каждое число кода разделяется от другого одним пробелом.


 

Генератор временных порталов

Цикл for Линейные алгоритмы

⏰ Починка машины времени:
[███████████░░░░░░░░░] 57% - Модуль 4 из 7 восстановлен
✅ Анализатор временных петель: ФУНКЦИОНИРУЕТ

Машина должна создавать порталы в каждые n лет, начиная с 2000 года. Запрограммируйте машину, напишите программу, которая по введенному Хроносом числу будет создавать порталы в соответствующие годы, начиная с 2000 года.

Формат входных данных
Ваша программа в первой строке получит натуральное число - шаг времени, во второй строке - количество порталов, которые необходимо сгенерировать.

Формат выходных данных
Программа должна выводить на экран созданные порталы  и года, в которые они ведут по формату: Портал номер: год

Часы:минуты

Линейные алгоритмы Целые числа

Музыкальный урок длится n минут. Сколько это полных часов и минут? Выведите ответ в формате: часов:минут.

Формат входных данных
Программа получает с клавиатуры количество минут n - целое положительное число. 

Формат выходных данных
Программа должна вывести строку в формате часы:минуты

Распределяем тетради

Линейные алгоритмы

В классе 30 учеников. Учитель принёс n тетрадей. Сколько тетрадей достанется каждому ученику, если раздать их поровну? 

Напишите программу для решения данной задачи. 

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

Формат выходных данных
Программа должна вывести на экран одно число - ответ на задачу. 

Таблица умножения для числа 4

Цикл for Линейные алгоритмы

Напишите программу, которая выводит таблицу умножения для числа n (целое число, вводится с клавиатуры) на числа от 1 до 4 (включительно).

Знак умножения ставится строчной английской буквой x. Обратите внимание, что знаки x, = отделяются с двух сторон одним пробелом.

Сколько лап у котика?

Линейные алгоритмы

Напишите программу, которая выводит на экран одно число - количество лап у котика

66402

Задачи на моделирование Линейные алгоритмы

Риэлторская фирма “КвартирКа” решила добавить в своё приложение кредитный калькулятор для своих клиентов. На время тестирования нового обновления калькулятор был сделан более простым.

Формат входных данных
На входе программа получает ряд натуральных целых чисел, разделённых переносом строки: сумма кредита (10000<=x<=999999999), процентная ставка (годовая) ( 1<=x<=100), планируемая сумма для ежемесячного погашения кредита (10000<=x<=999999999).
Формат выходных данных
На выходе программа должна выдать возможно ли выплатить кредит по представленным параметрам в виде: “True” - если возможно, “False” - если невозможно и на следующей строке количество месяцев необходимое для выплаты кредита, если кредит выплатить невозможно следует вывести ноль.

Правила расчёта кредита: процентная ставка начисляется каждые 12 (и в момент взятия кредита) месяцев на остаток по кредиту. Затем в первую очередь клиент ежемесячно гасит задолженность по процентам, а потом по самому кредиту. Если за год (12 месяцев) клиент не может погасить задолженность по процентам, то такой кредит невозможно выплатить или срок погашения кредита превышает 600 месяцев. Затем клиент начинает гасить задолженность по самому кредиту. Процент на остаток по кредиту будет начисляться каждый 12-ый месяц, выплата этих процентов будет начинаться со следующего за ним.

Пример: сумма кредита - 50.000, процентная ставка 50%, планируемая сумма погашения 10.000. В первый месяц будут начислены процента на долг, который составит 25.000. В первый месяц вся сумма пойдёт на погашения процентов 25.000-10.000. Во второй месяц, аналогично 15.000-10.000. В третий месяц 5.000 уйдёт на погашение долга по процентам и 5.000 на погашение задолженности, остаётся выплатить 45.000. В четвёртый месяц 45.000-10.000. В пятый 35.000-10.000. В шестой 25.000-10.000. В седьмой 15.000-10.000. На восьмой месяц кредит будет полностью погашен, так как не было набрано 12 месяцев проценты более не начислялись.

65872

Линейные алгоритмы Алгоритмы обработки

Автомат получает на вход последовательность целых чисел и складывает их по следующим правилам:
1) Если число чётное, автомат удваивает его и добавляет в сумму.
2) Если число нечётное, автомат добавляет его значение в сумму.
После обработки последовательности автомат вычитает из получившейся суммы максимальное число последовательности, кратное 3, и выводит получившееся значение как результат.
Располагая последовательностью, определите, какой результат выведет автомат.

Входные данные
На вход программе в первой строке подается натуральное число N (5 ≤ N ≤ 10000) – количество чисел. Далее в N строках подаётся по одному натуральному числу, не превышающему 1000. Если чисел, кратных 3, в последовательности нет, автомат ничего не вычитает.
Выходные данные
Вывести одно целое число – наибольшее возможное, которое можно получить по правилам, описанным в условии задачи.

65818

Линейные алгоритмы Алгоритмы обработки

Автомат получает на вход последовательность неотрицательных чисел, меньших 100, и работает с ними по следующим правилам:
1) Если количество единиц нечётно и превышает количество десятков,автомат добавляет количество десятков в первую контрольную сумму.
2) В противном случае автомат добавляет количество единиц во вторую контрольную сумму.
После обработки последовательности автомат вычитает меньшую сумму из большей и выводит результат.
Располагая последовательностью, определите, какой результат выведет автомат. Количество десятков в однозначном числе равно нулю.

Формат входных данных
На вход программе в первой строке подается натуральное число N (3 ≤ N ≤ 10000) – количество чисел. Далее в N строках подаётся по одному неотрицательному числу, меньшем 100.
Формат выходных данных
Вывести одно целое число – результат обработки последовательности, который можно получить по правилам, описанным в условии задачи.

Переключая каналы

Линейные алгоритмы Разбор случаев

Родители Лизы подключили пакет, содержащий N телевизионных каналов, пронумерованных числами от 1 до N. Переключать каналы можно с помощью двух кнопок на пульте: «+» и «−». Короткое нажатие на кнопку «+» приведёт к переключению на следующий канал, если номер текущего канала меньше N; если же номер текущего канала равен N, то телевизор продолжит показывать этот канал. Если кнопку «+» нажать и удерживать некоторое время, произойдёт переход на K каналов вперёд, при условии, что номер текущего канала не превосходит N − K. В противном случае произойдёт переход на канал N.
Аналогично, короткое нажатие на кнопку «−» приведёт к переключению на предыдущий канал, если номер текущего канала больше 1; если же номер текущего канала равен 1, телевизор продолжит показывать этот канал. Если кнопку «−» нажать и удерживать некоторое время, то произойдёт переход на K каналов назад при условии, что номер текущего канала превышает K. В противном случае произойдёт переход на канал 1.
Лиза включила телевизор и обнаружил, что он показывает канал P. Лиза знает, что очень скоро по каналу с номером U начнётся интересная передача. Определите, какое минимальное количество нажатий на кнопки пульта потребуется сделать Лизе, чтобы переключиться на канал U.
Формат входных данных
В первой строке содержится целое число N (3 ≤ N ≤ 109 ) — количество телевизионных каналов.
Во второй строке содержится целое число K (2 ≤ K < N) — количество каналов, на которое осуществится переход назад или вперёд при удерживании соответствующей кнопки переключения.
В третьей строке содержится целое число P (1 ≤ P ≤ N) — номер канала, который показывает телевизор.
В четвёртой строке содержится целое число U (1 ≤ U ≤ N) — номер канала, на который желает переключиться Лиза. Гарантируется, что P = U.
Формат выходных данных
Выведите одно целое неотрицательное число — минимальное количество нажатий на кнопки пульта, которое необходимо для переключения с канала P на канал U.

Замечание
В первом примере Лизе следует сначала выполнить одно короткое нажатие на кнопку «+» и переключиться с канала 3 на канал 4, а затем трижды осуществить переход вперёд на 5 каналов: сначала переключиться с 4 на 9, затем с 9 на 14 и, наконец, с 14 на 19 канал.
Во втором примере Лиза может сначала переключиться коротким нажатием на кнопку «−» на канал 2, после чего выполнить три перехода вперёд на 5 каналов: с канала 2 на канал 7, затем на канал 12 и, наконец, на канал 17.
В третьем примере Лиза дважды выполнит короткое нажатие кнопки «−».
В четвёртом примере Лизе нужно сначала перейти назад, на канал 1, после чего трижды выполнить переход вперёд, последовательно на каналы 6, 11, 16.

Суперскиллы

Алгоритмы обработки Линейные алгоритмы

В городе Летовецк живут n подростков, каждый из которых обладает некоторым количеством скиллов. Назовем подростка "суперскилованным", если количество его скиллов больше, чем у других подростков.
Старый мудрец Летовец решил поделиться всеми своими суперскиллами только с одним из подростков. Он хочет выбрать подростка таким образом, чтобы скиллы этого подростка и скиллы Летовца суммарно были больше. Другими словами, выбранный мудрецом подросток может стать "суперскилованным". 

Напишите программу, которая определяет сколько подростков являются претендентантами стать  "суперскилованными".


Формат входных данных
В первой строке задается натуральное число n (n < 105) - количество подростков. Во второй строке вводится n чисел skillsi - количество скиллов у i-го подростка (0<=skillsi<=109, 0<=i<n). В третьей строке вводится одно натуральное число extraskills - количество суперскиллов у мудреца Летовца (0<=extraskills<=109).

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

Украшения для ёлки

Линейные алгоритмы Цикл for

В первый час Муми-Тролли повесили x игрушек на ёлку. Каждый следующий час они могут повешать на ёлку количество игрушек не более чем на 10% больше, чем в предыдущем часе. К какому часу Муми-тролли повесят на елку все y игрушек, если будут стараться украсить ёлку как можно быстрее.

Формат входных данных
Программа получает на вход два целых числа x и y.

Формат выходных данных
Программа должна вывести одно натуральное число - час, к которому на ёлке будут висеть все игрушки.

Калькулятор mini

Ввод, вывод данных Линейные алгоритмы

Напишите программу "Калькулятор mini", которая выполняет следующее:

На первой строке выводит на экран строку "Калькулятор mini". 
На второй строке выводит строку "Введите два числа, каждое в отдельной строке". Ввод чисел должен начинаться с новой строки.
Запрашивает в двух отдельных строках два числа с клавиатуры. Первое число сохрается в переменной a, второе в переменной b.
Программа должна сохранять в переменную sum значение суммы a и b.
Программа должна сохранять в переменную diff значение разности a и b.
Выведите на экран в отдельных строках:
Сначала фразу: 
Сумма ваших чисел равна <sum>
(вместо <sum> выводится значение сохраненное в переменной sum)

в следующей строке фразу: 
Разность ваших чисел равна <diff>
(вместо <diff> выводится значение сохраненное в переменной diff)

Робот

Линейные алгоритмы Вывод формулы

В левом нижнем углу доски  размером NxM клеток стоит Робот. Он может ходить на одну клетку по горизонтали, вертикали или диагонали. Требуется переместить Робота в правый верхний угол за наименьшее количество ходов.

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

Вводятся два натуральных числа N (высота доски) и M (ширина доски), не превышающие 100.

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

Выведите последовательность ходов в одном из возможных кратчайших путей. Каждый ход обозначается заглавной латинской буквой:
   U – вверх,
   R – вправо,
   D – вверх и вправо.
Буквы выводятся без пробелов в одной строке.

Калькулятор mini

Ввод, вывод данных Линейные алгоритмы

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

Формат входных данных
В первой строке вводится первое целое число, во второй строке - второе целое число (каждое число не больше 100). 

Формат выходных данных
В первой строке выведите сумму введенных чисел. Во второй строке - их разность.

Billing

Линейные алгоритмы Задача на реализацию

Девочка Катя подключилась к тарифу “Очень выгодный”, на котором можно только звонить. Все входящие звонки бесплатны. В случае исходящего звонка не более k1 первых секунд звонка стоят p1 копеек, и позвонить можно только если эти деньги на счету есть. За следующие k2 секунд Катя платит по p2 копеек за секунду, а все остальное время девочка платит по p3 копеек за секунду. Деньги снимаются мгновенно после каждой секуны. Как только баланс становится неположительным, связь обрывается. Известно, что Катя положила N копеек на счет, чтобы поговорить со своим лучшим другом. Причем, она хочет потратить все N копеек на этот один телефонный звонок. Посчитатйте, сколько максимально секунд Катя сможет наслаждаться беседой.

Входные данные
Во входном файле записаны через пробел 6 целых чисел: 0 ≤ N ≤ 1000000, 1≤ k1,k≤ 1000000, 1 ≤ p1, p2, p≤ 1000000.

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

Следующая фотография

Остатки Линейные алгоритмы

На странице сайта размещена карусель с фотографиями. Фотографии в каруселе пронумерованы от 1 до n. Карусель содержит кнопки вперед и назад. При нажатии кнопки вперед, в карусель загружается следующая фотография (фотография с номером на 1 больше). Если в каруселе отображается последняя фотография (с номером n), то при нажатии кнопки вперед загружается первая фотография (фотография с номером 1).
Всего карусель содержит n фотографий. Посетитель сайта сейчас просматривает фотографию с номером m. Фотография под каким номером загрузится в карусель, если посетитель нажмет один раз кнопку вперед?

Формат входных данных
Программа получает на вход две строки. В первой строке записано натуральное число n (n < 109). Во второй - натуральное число m (1≤ mn). 

Формат выходных данных
Выведите одно число - номер следующей фотографии.

Площадь прямоугольника

Линейные алгоритмы Целые числа

Напишите программу, которая находит и выводит на экран площадь прямоугольника со сторонами 17 и 10 соответственно.
Для этого:

  • Объявите переменные length, width и area
  • Присвойте переменным length и width соответствующие значения.
  • Значение переменной area вычислите по формуле длина * ширина
  • Выведите значение переменной area.

Сложение значений переменных

Целые числа Линейные алгоритмы

Напишите программу, которая выполняет следующие действия.

  • Объявляются две переменные a и b.
  • Присваиваеься значение 2024 переменной a и  2025 переменной  b.
  • Выведится сумма a и b на экран (a+b).

 

Товар оптом

Вычисление по заданной формуле Линейные алгоритмы

Товар стоит a руб. b коп. Сколько стоят n единиц товара?

Входные данные
Вводятся 3 числа: a, b и n.

Выходные данные
Необходимо вывести 2 числа: e и f, число рублей и копеек, соответственно.

Сдача

Линейные алгоритмы Вычисление по заданной формуле

Товар стоит a руб. b коп. За него заплатили c руб. d коп. Сколько сдачи требуется получить?


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

Вводятся 4 числа: ab, c и d.


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

Необходимо вывести 2 числа: e и f, число рублей и копеек, соответственно.

Треугольники

Простые задачи на перебор Линейные алгоритмы

Дан набор из N отрезков различной длины. Сколькими способами можно выбрать из этих отрезков три, из которых можно составить (невырожденный) треугольник?

Входные данные
Сначала вводится количество отрезков, затем длины этих отрезков (еще N чисел).

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

Количество отрезков - не менее 3 и не более 20. Длина каждого отрезка - натуральное число, не превосходящее 1000. Все отрезки имеют разную длину.

Квадратные таблицы

Линейные алгоритмы

Вася записывает в клетки квадратной таблицы NxN натуральные числа по порядку, сначала заполняя первую строку слева направо, затем вторую и т.д. (см. рисунок слева). Петя заполняет такую же таблицу, расставляя числа сначала в первый столбец сверху вниз, затем во второй столбец и т.д.

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
 
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16

При этом оказалось, что некоторые числа и Вася, и Петя записали в одну и ту же клетку (например, число 6 записано во вторую строку второго столбца обеих таблиц).

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

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

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

Размер таблицы - натуральное число, не превосходящее 100.

Долгое вычитание

Задачи на моделирование Линейные алгоритмы

Вызываемые мальчики подходили к доске и должны были писать мелом требуемые цифры и считать их как-то от правой руки к левой...

Сергей Аксаков, <<Детские годы Багрова-внука>>.

На доске написано число \(n\), с которым несколько раз производят следующую операцию: если в записи числа на доске есть хотя бы одна нечётная цифра, то очередной мальчик вычитает из него 1, в противном случае — делит на 2. Сколько мальчиков нужно вызвать, чтобы на доске получился ноль?

Формат входных данных
Единственная строка входного файла содержит натуральное число \(n\) (\(1 \le n \le 10^{18}\)).

Обратите внимание, что входные данные в этой задаче могут превышать возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#).

Формат выходных данных
Выведите одно натуральное число — ответ на вопрос задачи.

 

Замечание

В примере дано \(n = 25\). Число имеет в своей записи нечётную цифру \(5\), поэтому после первой операции \(n\) уменьшится на \(1\) и станет равно \(24\).

Число \(24\) не имеет в своей записи нечётных цифр, поэтому после второй операции \(n\) уменьшится в \(2\) раза и станет равно \(12\).

Далее \(n\) будет принимать значения: \(11\), \(10\), \(9\), \(8\), \(4\), \(2\), \(1\) и \(0\). Всего потребуется \(10\) операций.

Прогрессия

Линейные алгоритмы

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

Дэн Браун, <<Код да Винчи>>

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

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

Формат входных данных
Программа получает на вход три целых положительных числа, не превосходящих \(10^5\) каждое, по одному в строке, в том порядке, в котором они шли на доске.

Формат выходных данных
В первой строке выведите число, которое Вове необходимо написать. Можно доказать, что это число обязательно должно быть целым. В записи этого числа не должно быть десятичной точки, то есть вывод <<\(13{.}0\)>> вместо <<13>> является неправильным.

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

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


Замечание

В примере из условия Вова увидел на доске числа \(10\), \(16\) и \(19\). Если он напишет на доску между первым и вторым из них число \(13\), то в получившейся четверке чисел \(10~13~ 16~19\) разность между четвертым и третьим (\(19 - 16\)), третьим и вторым (\(16 - 13\)) и вторым и первым (\(13 - 10\)) окажется одна и та же, поэтому эта четверка будет арифметической прогрессией.

Контрольное значение - 4

Префиксные суммы(минимумы, ...) Линейные алгоритмы

Профессор Селезнев передает Алисе зашифрованную информацию, которая представляет собой последовательность целых чисел. Все числа данной последовательности не превышают 107. Каждое число передается в течении одной секунды. Чтобы понять, что данные переданы правильно, Алисе необходимо определить контрольное значение, которое вычисляется по следующему правилу,
- берутся три переданных значения из последовательности таким образом, чтобы между между какими-либо двумя соседними моментами передачи прошло ровно K секунд (между передачей первого выбранного числа и второго или между передачей второго выбранного числа и третьего);
- вычисляется сумма выбранных чисел, которая должна быть минимальной. Данная сумма является контрольным значением.
Помогите Алисе определить контрольное значение.


Формат входных данных
В первой строке записано количество чисел N (1 ≤ N ≤ 2·105) и целое число K (1 ≤ K < 105, K < N). Каждая из следующих N строк содержит одно целое число, по модулю не превышающее 107.


Формат выходных данных
Выведите одно число - контрольное значение.
 

Контрольное значение - 2

Префиксные суммы(минимумы, ...) Алгоритмы обработки Линейные алгоритмы

Профессор Селезнев передает Алисе зашифрованную информацию, которая представляет собой последовательность целых чисел. Все числа данной последовательности не превышают 107. Каждое число передается в течении одной секунды. Чтобы понять, что данные переданы правильно, Алисе необходимо определить контрольное значение, которое вычисляется по следующему правилу:
- берутся три переданных значения из последовательности таким образом, чтобы между между какими-либо двумя соседними моментами передачи прошло ровно K секунд (между передачей первого выбранного числа и второго или между передачей второго выбранного числа и третьего);
- вычисляется сумма выбранных чисел, которая должна быть максимальной. Данная сумма является контрольным значением.
Помогите Алисе определить контрольное значение.


Формат входных данных
В первой строке записано количество чисел N (1 ≤ N ≤ 2·105) и целое число K (1 ≤ K < 105, K < N). Каждая из следующих N строк содержит одно целое число, по модулю не превышающее 107.


Формат выходных данных
Выведите одно число - контрольное значение.
 

Вычислите a+b

Линейные алгоритмы

Вычислите a+b.

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

Единственная строка входных данных содержит два натуральных числа через пробел. Значения чисел не превышают 109.

Выходные данные
Выведите на экран результат выражения a+b.
 
 

Любитель нулей

Строки Линейные алгоритмы

Саша очень любит нули. Но нули на конце числа не кажутся ему интересными. Разумеется, ведущие нули тоже не интересуют Сашу.

Саша считает красоту числа равной количество нулей в его десятичной записи, за исключеним нулей в конце числа. Разумеется, ведущих нулей в записи быть не должно. Например, красота числа 100500 равна 2.

По заданному числу \(k\) выясните, чему равна его красота по мнению Саши.

Формат входных данных
Входные данные содержат одно число \(k\) (\(1 \le k \le 10^9\)).

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

Выведите одно число — красоту числа \(k\) по мнению Саши.

Штангист

Линейные алгоритмы Алгоритмы обработки

Штангист готовится к соревнованиям и хочет проанализировать набранную мышечную массу.

Он анализирует записи о своих тренировках за последние \(n\) дней. Для каждого дня ему известна масса тела утром \(x_i\) и масса тела вечером \(y_i\). Также известно, в какие дни штангист проводил тренировку.

Он считает, что в те дни, когда он проводил тренировку, увеличение массы тела, если оно произошло, равно приросту мышечной массы, а если масса тела уменьшалась или тренировки не было, то прирост мышечной массы в этот день равено \(0\).

Помогите штангисту определить суммарный прирост его мышечной массы.

Формат входных данных
Первая строка ввода содержит число \(n\) — количество анализируемых дней (\(1 \le n \le 1000\)).

Вторая строка содержит \(n\) целых чисел, \(i\)-е число равно \(1\), если в \(i\)-й день была тренировка и \(0\), если в \(i\)-й день тренировки не было.

Следующие \(n\) строк содержат результаты измерения массы тела штангиста: по два целых числа \(x_i\) и \(y_i\) — массу тела в граммах (\(30\,000 \le x_i, y_i \le 200\,000\)).

Формат выходных данных
Выведите одно целое число — суммарный прирост мышечной массы штангиста.

Робинзон Крузо

Линейные алгоритмы Вычисление по заданной формуле

Робинзон Крузо на необитаемом острове отмечает дни стене своей хижины.

Каждый день он ставит зарубку, которую будем обозначать английской буквой <<I>>, а раз в 5 дней зачеркивает четыре предыдущие зарубки, получая символ, который мы обозначим как <<V>>.

Какая запись получится на стене хижины Робинзона на \(n\)-й день?

Формат входных данных
На ввод подается одно число \(n\) (\(1 \le n \le 10\,000\)).

Формат выходных данных
Выведите запись, которая получится на стене хижины Робинзона на \(n\)-й день.

Обработка пар чисел - 1

Линейные алгоритмы Остатки Жадный алгоритм

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

Формат входных данных
В первой строке количество пар N (1 ≤ N ≤ 100000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 10 000.
Программа должна напечатать одно число – максимально возможную сумму, соответствующую условиям задачи.

Формат выходных данных
Выведите значение найденной максимальной суммы. Если такой суммы нет, то выведите -1.
  
 

Сетка

Задача на реализацию Линейные алгоритмы

Заданы числа \(k\), \(w\), \(h\) и \(t\).

Треуется нарисовать прямоугольную сетку шириной \(w\) и высотой \(h\), ячейки должны иметь размер \(k \times k\), толщина линий должна быть \(t\).

Для линий используйте символ <<*>>, для ячеек используйте символ <<.>>.

Формат входных данных
На первой строке ввода задано целое число \(k\) (\(1 \le k \le 10\)). На второй строке ввода задано целое число \(w\) (\(1 \le w \le 10\)). На третьей строке ввода задано целое число \(h\) (\(1 \le h \le 10\)). На четветрой строке ввода задано целое число \(t\) (\(1 \le t \le 10\)).

Формат выходных данных
Выведите изображение сетки.

В этой задаче 10 тестов, каждый оценивается независимо в 10 баллов.

 

Раздвоитель

Жадный алгоритм Линейные алгоритмы

Исполнитель “Раздвоитель” преобразует натуральные числа. У него есть две команды: “Вычесть 1” и “Разделить на 2”, первая команда уменьшает число на 1, вторая команда уменьшает число в два раза, если оно чётное, иначе происходит ошибка.

Входные данные
Программа получает на вход два натуральных числа A и (по одному числу в строке).

Выходные данные
Напишите алгоритм для Развоителя, который преобразует число A в число B и при этом содержит минимальное число команд. Команды алгоритма нужно выводить по одной в строке, первая команда обозначается, как -1, вторая команда как :2.
 
 

Примеры
Входные данные Выходные данные
1 21
2
-1
:2
:2
-1
:2

(C++) Перебор всех символов

Строки Линейные алгоритмы

Напишите программу, которая в строке заменяет все точки на нули и все заглавные английские буквы "X" на единицы. 
 

Примеры
Входные данные Выходные данные
1 ..X..XX 0010011

Контрольная работа (java)

Условный оператор Линейные алгоритмы

За контрольную работу в классе учениками было получено A - пятерок, B - четверок, C - троек и D - двоек.
Напишите программу, которая определяет сколько учеников получили оценку, превышающую средний балл.

Входные данные 
На вход программы подаются 4 числа (A, B, C, D), по одному в строке. 

Выходные данные 
Выведите одно число - сколько учеников получили оценку превышающую средний балл.
 

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

Разборчивая невеста (java)

Условный оператор Линейные алгоритмы

Разборчивая невеста при выборе женихов руководствуется правилом: "жених должен быть старше ее, но ненамного". По известным возрастам невесты - N лет и женихов: R лет, F лет и S лет (все возраста женихов разные и больше возраста невесты), определите, которого она выберет - первого, второго или третьего.

Входные данные 
На вход программе подается четыре числа, по одному в строке:
- в первой строке - возраст невесты;
- в следующих трёх - возраста женихов (R, F и S соответственно).

Выходные данные 
Вывести букву жениха (R, F или S), которого выберет невеста.

 

Примеры
Входные данные Выходные данные
1 25
26
27
28
R

Сериал

Линейные алгоритмы Задача на реализацию

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

Входные данные
В первой строке входных данных записано единственное целое число N — количество серий (3 <= N <= 105 ).
В каждой из следующих N строк записано по одному целому числу — год, в который происходят события очередной серии (каждый год является целым числом от 1 до 109 включительно).

Выходные данные
Программа должна вывести три целых числа i, j, k (1 <= i < j < k <= N) — номера искомых трех серий. Серии нумеруются числами от 1 до N. Если ответов несколько, выведите любой из них. Если ответа не существует, выведите одно число ноль.

Примеры
Входные данные Выходные данные
1 4
1985
2000
1990
2005
1 2 4
2 4
2000
2000
2001
2001
0

Замечание
В первом примере нужно выбрать серии 1, 2, 4, действие которых происходит в 1985, 2000 и 2005 годах соответственно.
Во втором примере выбрать три серии, удовлетворяющие условиям задачи, нельзя.

Пробежка

Вывод формулы Линейные алгоритмы

Выходя на пробежку Рита берёт с собой телефон для прослушивания музыки и беспроводные наушники. Перед каждой пробежкой Рита заряжает наушники, и этой зарядки хватает на A минут прослушивания музыки. Рита решила, что каждый день она будет тренироваться на минуту дольше, чем в предыдущий день. То есть если в первый день Рита бегала и слушала музыку в течение B минут, во второй день она будет бегать B + 1 минуту, в третий день — B + 2 минуты и т.д.
Если заряда наушников хватает на большее время, чем продолжительность пробежки, то неиспользованный заряд накапливается и может быть использован в последующие дни. Емкость аккумулятора наушников можно считать неограниченной.
Определите, в какой день Рите впервые не хватит заряда для прослушивания музыки во время всей пробежки.

Входные данные
Первая строка входных данных содержит целое число A (1 <= A <= 109 ) — величина ежедневного заряда аккумулятора (в минутах прослушивания музыки). Вторая строка входных данных содержит целое число B (1 <= B <= 109 ) — продолжительность пробежки в первый день.

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

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

Средние

Вычисление по заданной формуле Линейные алгоритмы

Средние значение между какими-либо данными можно вычислять разным способом. В математике выделяют следующие средние значения:

  1. среднее арифметическое чисел a и b\(\dfrac{a+b}{2}\)
     
  2. среднее геометрическое чисел a и b: \( \sqrt{a\cdot b}\);
     
  3. среднее гармоническое чисел a и b\(\dfrac{2ab}{a+b}\);
     
  4. среднее квадратичное чисел a и b: \( \sqrt{\dfrac{a^2+b^2}{2}}\).

Формат входных данных
На вход подается два вещественных числа a и (1 <= a, b <= 1000).

Формат выходных данных
Программа должна вывести 4 числа – среднее арифметическое, геометрическое, гармоническое и квадратичное. Каждое число выводиться с точностью не менее 6 знаков после запятой на отдельной строке. 

Геометрическая прогрессия

Цикл for Линейные алгоритмы

По данному действительному числу a и натуральному n вычислите сумму \(1+a+a^2+...+a^n\), не используя формулу суммы геометрической прогрессии. Время работы программы должно быть пропорционально n.

Входные данные
Программа получает на вход два неотрицательных числа. В певрой строке записано действительное (вещественное) число a, во второй - целое число n.

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

Примеры
Входные данные Выходные данные
1 2
2
7

Рейнджеры в автобусе

Задачи на моделирование Линейные алгоритмы

Не каждый день могучие рейнджеры надевают свои костюмы. Сами посудите: как нелепо они бы смотрелись, скажем, в общественном транспорте, если бы не снимали их!
Это создаёт определённые трудности злодеям, которые хотят выследить их. Вот и сегодня Рита Репульса не может их поймать, потому что не знает, как они выглядят без костюмов.
Рита следит за автобусом, в котором, по её мнению, едет кто-то из рейнджеров. В салоне автобуса n рядов сидений, в каждом из которых по два места — слева и справа от прохода. Ряды пронумерованы от 1 до n, начиная с передней части автобуса. На конечной остановке в автобус по очереди зашли k человек, и Рита знает, кто на какое место сел и в каком порядке. Кроме того, ей известно, как каждый из рейнджеров выбирает себе место, когда заходит в автобус:

  •  Красный рейнджер любит сидеть впереди. Поэтому среди свободных мест он всегда выбирает место в ряду с наименьшим номером. Если же в этом ряду свободно два места, он садится слева от прохода.
  •  Синий рейнджер тоже любит сидеть впереди. Но, в отличие от красного, когда в ряду с наименьшим номером свободно два места, Синий садится справа.
  •  Чёрный рейнджер любит сидеть сзади. Среди свободных мест он всегда выбирает место в ряду с наибольшим номером, а если там свободно два места, то садится слева от прохода.
  •  Жёлтый рейнджер тоже, любит сидеть сзади. Но, в отличие от чёрного, когда в ряду с наибольшим номером свободно два места, жёлтый садится справа.
  •  Розовый рейнджер не имеет никаких предпочтений и может сесть на любое свободное место.
Про каждого из рейнджеров Рита хочет узнать, кто из k пассажиров мог бы быть им. По известным местам, куда садились пассажиры, выведите эту информацию. Обратите внимание, что совсем не обязательно все рейнджеры ехали на этом автобусе.

Входные данные
В первой строке заданы числа n и k — количество рядов в автобусе и количество пассажиров (1 ≤ n ≤ 109, 1 ≤ k ≤ min(2 · 105, 2n)).
В следующих k строках описаны пассажиры в том порядке, в котором они заходили в автобус.
В i-й из этих строк заданы числа xi и yi — место, на которое сел i-й пассажир (1 ≤ xi ≤ n, 1 ≤ yi ≤ 2), xi — это номер ряда, yi = 1, если это место слева от прохода, и yi = 2, если справа.
Все места, на которые сели пассажиры, различны.

Выходные данные
В первой строке выведите число s1 — количество пассажиров, которые могли бы быть красным рейнджером, а затем, через пробел, s1 чисел — номера этих пассажиров в порядке возрастания (пассажиры нумеруются с 1 по k в том порядке, в котором они заданы во входных данных).
В следующих четырёх строках выведите в том же формате информацию об остальных рейнджерах: синем, чёрном, жёлтом и розовом соответственно.
 
Примеры
Входные данные Выходные данные
1 3 4
1 1
1 2
3 2
2 1
3 1 2 4
1 2
0
1 3
4 1 2 3 4

Замечание

На этой картинке показаны места, на которые садились пассажиры в примере.
 

Генеалогическое древо - 1. Высота

Словари Линейные алгоритмы

Генеалогическое древо — это графическая схема, описывающая родственные связи в пределах одной семьи. Начало такого дерева — это один предок (родоначальник) или супруги и далее цепочка строится вниз. Сопоставим с каждым элементов дерева целое неотрицательное число, называемое высотой.  У самого верхнего предка высота 0, у каждого следующего потомка высота на 1 больше, чем у его родителя. 

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


Входные данные
Программа получает на вход число элементов в генеалогическом древе N. Далее следует N−1 строка, задающие родителя для каждого элемента древа, кроме родоначальника. Каждая строка имеет вид имя_потомка имя_родителя.

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

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

Пример
Входные данные Выходные данные
1
9
Alexei Peter_I
Anna Peter_I
Elizabeth Peter_I
Peter_II Alexei
Peter_III Anna
Paul_I Peter_III
Alexander_I Paul_I
Nicholaus_I Paul_I
Alexander_I 4
Alexei 1
Anna 1
Elizabeth 1
Nicholaus_I 4
Paul_I 3
Peter_I 0
Peter_II 2
Peter_III 2

Кинотеатр

Вывод формулы Линейные алгоритмы

В кинотеатре места часто расставляют со сдвигом соседних рядов для удобства зрителей. Пусть в таком кинотеатре N мест в 1-м, 3-м, 5-м и всех нечётных рядах и N + 1 место во 2-м, 4-м и всех чётных рядах. Места в рядах нумеруются от 1 до N в нечётных рядах и от 1 до N + 1 в чётных рядах. Касса продаёт билеты подряд: сначала в 1-й ряд на места с 1-го по N-е, потом — во 2-й ряд на места с 1-го по N + 1-е, затем в 3-й ряд с 1-го места и т.д. Определите номер ряда и номер места для K-го проданного билета.

Входные данные
Программа получает на вход два целых числа. В первой строке записано число N (1 <= N <= 109 ) — количество мест в 1-м ряду кинотеатра. Во второй строке записано число K — порядковый номер проданного билета (1 <= K <= 2 × 109 ).

Выходные данные
Программа должна вывести два числа в одной строке через пробел: номер ряда и номер места K-го проданного билета.
 

Примеры
Входные данные Выходные данные Пояснение
1 10
25
3 4 Билеты с 1 по 10 будут проданы в первый ряд. Билеты с 11 по 21 будут проданы во второй ряд. В третий ряд будут проданы билеты, начиная с 22-го, 25-й билет окажется на 4-м месте 3-го ряда.

Путешествие по джунглям

Задачи на моделирование Линейные алгоритмы

Горилла Коко очень любит путешествовать по своим родным джунглям с помощью лиан.
Всего в джунглях есть N лиан, расположенных друг за другом и пронумерованных слева направо целыми числами от 1 до N. Расстояние между соседними лианами составляет D метров. Находясь на i-й лиане, Коко может совершить прыжок с нее не более, чем на ai метров вправо. В процессе прыжка Коко должна зацепиться за какую-то другую лиану, мимо которой будет пролетать.
В данный момент Коко висит на первой лиане и хочет переместиться как можно дальше вправо.
Помогите Коко и определите максимальный номер лианы, до которой она сможет добраться.

Входные данные
Первая стока входных данных содержит целое число N (2 ≤ N ≤ 105) — количество лиан.
Во второй строке записано целое число D (1 ≤ D ≤ 109) — расстояние между соседними лианами.
В каждой из следующих N строк записано целое число ai (1 ≤ ai ≤ 109) — на сколько метров вправо может прыгнуть Коко, находясь на i-й лиане.

Выходные данные
Выведите единственное целое число — максимальный номер лианы, до которой сможет добраться
Коко.
 

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


Замечание
В примере из условия дано 5 лиан, а расстояние между лианами равно 3 метрам. Находясь на первой лиане, Коко может прыгнуть не более, чем на 7 метров, то есть она сможет допрыгнуть до второй и третьей лианы. Ей нужно остановиться на второй лиане, потому что со второй лианы длина прыжка равна 8 метрам, и это позволит ей допрыгнуть до четвёртой лианы. С четвёртой лианы длина прыжка равна 2 и это меньше, чем расстояние до следующей лианы, поэтому Коко остановится на четвёртой лиане.

Андрей и порталы

Задачи на моделирование Линейные алгоритмы

Андрей вот-вот опоздает на школьный этап ВсОШ. К счастью, недавно в его городе появились порталы.
Город, в котором живет Андрей, можно представить в виде прямой. Всего в городе успели построить N порталов. Портал с номером i расположен в точке с координатой xi . Если в текущий момент времени вы находитесь в одной точке с каким-нибудь порталом, то можете всего за одну секунду телепортироваться в любой другой портал вне зависимости от расстояния между ними. А время, требуемое для преодоления расстояния между точками с координатами p и q без использования порталов равно |p − q| секунд. Андрей является влиятельным гражданином, поэтому он может использовать систему порталов любое количество раз.
Изначально Андрей находится в точке s, а точка проведения олимпиады имеет координату e.
Помогите Андрею понять, как быстро он может попасть на олимпиаду, ведь каждая секунда на счету.

Входные данные
В первой строке входных данных записано одно целое число s — начальное положение Андрея.
Во второй строке записано одно целое число e — место проведения олимпиады. 
В третьей строке записано количество порталов N (2 ≤ N ≤ 2 · 105).
В каждой из N следующих строк записано целое число xi — координата портала с номером i.
Все числа s, e, xi по модулю не превосходят 108.

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

Входные данные Выходные данные
1 0
4
3
1
3
5
3


Замечание
Рассмотрим пример из условия. Если бы Андрей не мог пользоваться порталами, он бы смог добраться до точки проведения олимпиады за |0 − 4| = 4 секунды. Однако, можно действовать так:
1. Дойти до портала с номером 1 за |0 − 1| = 1 секунду.
2. Телепортироваться в портал с номером 2 за одну секунду.
3. Дойти от портала с номером 2 до точки проведения олимпиады за |3 − 4| = 1 секунду.
Суммарно получаем 1 + 1 + 1 = 3 секунды.

ASCII график - 2

Алгоритмы обработки Линейные алгоритмы

Недавно Вася решил всерьез заняться машинным обучением и распознаванием образов. Однако, наука это обширная, а
начинать с чего-то надо, поэтому его учитель информатики посоветовал ему начать с анализа ASCII рисунков.
Он дал Васе рисунок ASCII-графика, который выглядит следующим образом: он представляет собой прямоугольник n × m, состоящий из символов «*» и «.». Левая верхняя клетка прямоугольника считается началом координат — точкой (0, 0), верхняя строка таблицы — осью OX, направленной слева направо, а левый столбец — осью OY, направленной сверху вниз. Таким образом, клетка (x, y) таблицы отвечает за точку (x, y) на графике функции, и если в этой клетке таблицы стоит «*», то f(x) = y, а противном случае в клетке таблицы стоит «.». Гарантируется, что функция, график которой дан Васе, непрерывна и однозначно определена на всем промежутке, то есть:
В каждом столбце таблицы стоит ровно один символ «*»;
В соседних столбцах символы «*» находятся либо в соседних по стороне, либо в соседних по углу клетках.
Для начала, чтобы проанализировать этот график, Вася хочет найти количество локальных максимумов в нем, то есть таких x, что f(x - 1) > f(x) < f(x + 1) (если одно из значений f(x - 1) или f(x + 1) не определено, счиается, что неравенство выполняется).
Входные данные
В первой строке входного находятся два натуральных числа n и m — количество строк и количество столбцов в таблице соответственно (1 ≤ n, m ≤ 100).
В каждой из следующих n строк содержится строка из m символов — описание таблицы. Гарантируется, что таблица представляет собой график функции, описанной в условии.
Выходные данные
В единственной строке выведите одно число — количество локальных минимумов в данном графике функции.
 

Ввод Вывод
4 6
.*....
*.*.*.
...*.*
......
 
2
3 5
....*
****.
.....
1

Группировка студентов

Линейные алгоритмы

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

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

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

 

Примеры
Входные данные Выходные данные
1 8 2
2 2 0
3 9 3


 

Эвакуация при пожаре

Линейные алгоритмы

План эвакуации из здания нарисован в виде плоскости xy. В здании N кабинетов и M лестниц, ведущих к выходу. Координаты i-го кабинета (\( 1<=i<=N\)) - \((a_i, b_i)\), а координаты лестниц с номером j (\( 1<=j<=M\)) - \((c_j, d_j)\). Во время пожарной тревоги, все люди, находящиеся в конкретном кабинете должны эвакуироваться по ближайшей лестнице. Ближайшая лестница определяется по Манхэттенскому расстоянию между двумя точками \((x_1, y_1)\) и \((x_2, y_2)\) по формуле \(|x_1-x_2| + |y_1-y_2|\). Здесь \(|x|\) обозначает абсолютное значение x. Если для кабинета есть несколько ближайших лестниц, то эвакуироваться необходимо по лестнице с наименьшим индексом. 
Определите по какой лестнице должны эвакуироваться люди, находящиеся в каждом кабинете.

Входные данные
В первой строке задаются два целых числа N и M (\(1<=N,M<=50\)).   Далее идет N строк по два целых числа в кажой строке - координаты \((a_i, b_i)\), затем M строк по два целых  числа в кажой строке - координаты \((c_i, d_i)\)\(-10^8<=a_i ,b_i,c_j,d_j<=10^8\)

Выходные данные
Выведите N строк. В i-й строке (\( 1<=i<=N\)) должен быть указан индекс лестницы, по которой эвакуируются из i-го кабинета.
 

 

Примеры
Входные данные Выходные данные
1 2 2
2 0
0 0
-1 0
1 0
2
1
2 3 4
10 10
-10 -10
3 3
1 2
2 3
3 5
3 5
3
1
2
3 5 5
-100000000 -100000000
-100000000 100000000
100000000 -100000000
100000000 100000000
0 0
0 0
100000000 100000000
100000000 -100000000
-100000000 100000000
-100000000 -100000000
5
4
3
2
1

 

Хранение текста

Линейные алгоритмы Вычисление по заданной формуле

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

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

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

Примеры
Входные данные Выходные данные
1 8 1
2 9 2
 
 

Минимальное произведение

Использование сортировки Линейные алгоритмы

Дана последовательность из N целых чисел (они могут быть положительными, отрицательными или равными 0). Необходимо выбрать из этих чисел два числа так, чтобы их произведение было как можно меньшим (не рассматриваются квадраты данных чисел, но можно выбрать произведение двух различных элементов последовательности, равных друг другу).
В первой строке входных данных записано целое число N, 2 ≤ N ≤105 – количество данных чисел. Следующие N строк содержат сами числа, не превосходящие по модулю 40 000.
Программа должна вывести единственное целое число – наименьшее возможное произведение двух различных элементов этой последовательности.

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

Расписание кружка

Задачи на моделирование Линейные алгоритмы

Володе очень понравились задачи олимпиады по информатике, поэтому он решил ходить на занятия кружка по программированию. Придя на первое занятие кружка, он узнал, что занятия будут проходить еженедельно в один и тот же день недели. Помогите Володе составить календарь занятий до конца года – определите даты всех занятий, начиная с первого занятия и до конца года.
Программа получает на вход два числа, записанных в разных строках: номер месяца и номер дня месяца, когда проходит первое занятие. Номер месяца может быть одним из четырёх возможных чисел – 9, 10, 11, 12. Номер дня месяца – число от 1 до 30 для сентября и ноября (месяцы с номерами 9 и 11) или от 1 до 31 для октября и декабря (месяцы с номерами
10 и 12). 
Программа должна вывести даты всех занятий кружка до конца года в хронологическом порядке, по одной дате в строке, сначала месяц, затем день месяца, через пробел. Занятия проходят еженедельно, в тот же день недели, что и первое занятие. Формат вывода дат такой же, как в условии. Считайте, что каникулы отсутствуют, а последнее занятие может происходить в любой день декабря, в том числе и 31 числа.
 

Примеры
Входные данные Выходные данные
1 11
20
11 20
11 27
12 4
12 11
12 18
12 25

Туристический налог

Линейные алгоритмы Задачи на моделирование

Для пополнения бюджета в стране Авалон, известной своими горными туристическими маршрутами, ввели новый налог для туристов. Величина налога
пропорциональна длине маршрута, но, поскольку маршрут проходит по горам и пройденное расстояние, зависящее от высоты спуска и подъёма, подсчитать сложно, налог считается без
учёта высоты, то есть величина налога пропорциональна горизонтальному перемещению, совершённому туристической группой. Кроме того, в силу старинного обычая все
туристические группы должны перемещаться по горам Авалона строго с запада на восток. Турфирма хочет сэкономить на налоге, поэтому она хочет разработать туристический
маршрут с минимальной величиной налога. При этом, поскольку маршрут является горным, он должен содержать подъём в гору и спуск с горы, то есть на маршруте должна быть точка,
которая находится строго выше начала и конца маршрута. 
Турфирма составила карту гор Авалона, содержащую информацию о высоте гор при передвижении с запада на восток. Высоты гор измерены в точках через равные расстояния. 
Найдите на данной карте гор Авалона туристический маршрут минимальной длины, удовлетворяющий условию наличия подъёма и спуска.
Первая строка входных данных содержит число N – количество точек на карте гор Авалона. Следующие N строк содержат информацию о высоте гор в данных N точках при движении с запада на восток. Все числа натуральные, не превосходящие 105.
Программа должна вывести два числа – номер точки начала маршрута и номер точки окончания маршрута. Точки нумеруются от 1 до N. Если маршрута, удовлетворяющего
условиям, не существует, программа должна вывести одно число 0.

Примеры
Входные данные Выходные данные Пояснение
1 7
18
10
15
20
20
10
3
3
6
Дано 7 точек с высотами 18, 10, 15, 20, 20, 10, 3. Самый короткий маршрут, содержащий подъём и
спуск, – это 15, 20, 20, 10. Он начинается в точке номер 3 и заканчивается в точке номер 6.
 
2 3
9
8
5
0 Высота гор монотонно убывает, поэтому искомого маршрута не существует.

Конфеты

Вывод формулы Линейные алгоритмы

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

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

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

 

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

 

Что такое матрица? Создание, вывод на экран

Двумерные массивы Линейные алгоритмы

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

Входные данные
Во входной строке записаны через пробел размеры матрицы: количество строк N и количество столбцов M ( 1 <= N , M <= 100 ).
 

Выходные данные 
Программа должна вывести двоичную матрицу по строкам.
 

Примеры
Входные данные Выходные данные
1 4 5
0 1 0 1 0
1 0 1 0 1
0 1 0 1 0
1 0 1 0 1

Зачем мне программирование?

Линейные алгоритмы

Скопируйте программу, записанную ниже, в окно редактора. 
Запустите программу на выполнение. Результаты работы программы будут отображаться в окне. 

Каждая задача тестируется на некотором числе тестов. Результаты каждого теста отображаются в окне результатов. 
Ваша цель - за каждую задачу получить 100% выполненных тестов. 

Удачи!
 

Программа
var 
    a, b: longint;
begin
    read(a, b);
    writeln(a + b)
end.

 

Зачем мне программирование?

Линейные алгоритмы Ввод, вывод данных

Скопируйте программу, записанную ниже, в окно редактора. 
Запустите программу на выполнение. Результаты работы программы будут отображаться в окне. 

Каждая задача тестируется на некотором числе тестов. Результаты каждого теста отображаются в окне результатов. 
Ваша цель - за каждую задачу получить 100% выполненных тестов. 
Удачи!

ПРОГРАММА:

using System;
class Program 
{
    static void Main(string[] args)
    {
        int a= Convert.ToInt32(Console.ReadLine());
                Console.WriteLine(a*a);
    }
}

 

Квадраты n чисел

Цикл while Линейные алгоритмы Цикл for

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

Входные данные: вводится натуральное число.

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

Примеры
Входные данные Выходные данные
1 50 1 4 9 16 25 36 49

Книги в библиотеке

Линейные алгоритмы Задача на реализацию

 В библиотеке на стеллажи расставляют книги. Книги ставятся на полки ровно по  K штук на каждую, если полка не может быть заполнена полностью, она остается пустой. В каждом стеллаже по М полок. Последний стеллаж может быть заполнен не полностью. Всего имеется N книг. Сколько всего понадобится стеллажей, сколько полок будет заполнено на последнем стеллаже и сколько книг останется не выставлено на стеллажи (выставить нужно как можно больше книг)? Написать программу: вводятся три числа целых N, M, K в одной строке; вывести три числа в одной строке - сначала количество потребовавшихся стеллажей, затем количество заполненных книгами полок на последнем стеллаже, а затем количество не выставленных книг
 
Примеры

Входные данные Выходные данные
1 50 70 8 1 6 2
 

 
 

Казино волшебников

Цикл for Линейные алгоритмы Цикл while

В мире волшебников серебряный сикль равняется 29 бронзовым кнатам, а 17 сиклей равны 1 золотому галеону. В мире маглов галеон равен примерно 5 фунтам. Однако курс обмена может меняться.

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

Перед началом каждого раунда программа сообщает, на какую тему будет очередное волшебное задание и Рон делает ставку на то, что он справится с заданием. В самом начале игры Рон всегда делает ставку в 1 сикль. Если Рон выполняет задание правильно, то он выигрывает раунд и ставка плюсуется к его счету. Если у него ничего не получилось, то он проигрывает, и ставка вычитается из его счета. Рон очень азартный, поэтому после проигрыша всегда увеличивает ставку в 2 раза. Однако после выигрыша, дабы не вспугнуть удачу, Рон всегда снижает ставку до 1 сикля. Наконец, одолев очередное задание, и выиграв этот раунд, Рон решает закончить игру.

Например, пусть Рон правильно выполнил первое задание (выиграл начальную ставку в 1 сикль, поставил на следующий раунд 1 сикль), затем не выполнил второе задание (проиграл 1 сикль и удвоил ставку), не справился с третьим заданием (проиграл 2 сикля и снова удвоил ставку), но четвертое задание ему все-таки удалось выполнить (выиграл 4 сикля, сбросил ставку на 1 сикль). Затем он правильно выполняет и пятое задание (выиграл 1 сикль) и заканчивает игру. Итого на его счету после игры: 1 – 1 – 2 + 4 + 1 = 3 сикля.

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

Входные данные: Первая строка содержит целое число N (0 < N ≤ 2000) — количество заданий, которое выполнил Рон. В следующих N строках располагаются числа 0 или 1 (по одному числу в строке): 1, если Рон выполнил очередное задание, и 0 – если не выполнил
Выходные данные: Выведите одно целое число — выигрыш или проигрыш Рона (выигрыш определяется положительным числом, а проигрыш – отрицательным).

Примеры
Входные данные Выходные данные
1 5
1
1
0
1
1
4

Эмбер учится считать

Линейные алгоритмы Вычисление по заданной формуле

 Принцесса Эмбер, ее брат и София учатся в Академии волшебников, где у них также есть математика (никто же не сомневается, что математика важна волшебникам так же, как и знание различных заклинаний). Недавно учитель математики поведал детям о хитром способе возведения в квадрат натуральных чисел, оканчивающихся на цифру 5. Теперь ребята могут с легкостью возводить в квадрат двузначные (и даже некоторые трехзначные) числа, оканчивающиеся на 5. Способ заключается в следующем: для возведения в квадрат числа, оканчивающегося на 5, достаточно умножить число, полученное из исходного вычеркиванием последней пятерки на следующее по порядку число, затем остается лишь приписать «25» к получившемуся результату справа. Например, для того, чтобы возвести число 125 в квадрат достаточно 12 умножить на 13 и приписать 25, т.е. приписывая к числу 12*13=156 число 25, получаем результат 15625, т.е. 1252=15625.
Эмбер решила потренироваться в новом навыке, и хочет, чтобы ее кто-то проверил. Но так как она слишком горда, чтобы просить чьей-то помощи в Королевстве, она просит Вас написать для нее программу, по которой бы она смогла себя проверить.
Входные данные: на вход подается целое число \(A\), оканчивающееся цифрой 5 и не превышающее \(400005\)
Выходные данные: выведите одно число - \(A^2\)

Пример
Входные данные
125
Выходные данные
15625

Городки Седрика

Линейные алгоритмы

Волшебник Седрик пригласил принцессу Софию и ее друзей поиграть в свою версию старинной игры "Городки".  Седрик расставил несколько столбиков в ряд, которые необходимо сбить битой по порядку. Седрик сбивал столбики один за другим, начиная с самого левого, София — с самого правого. В какой-то момент они сбили последний столбик вместе.

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

Входные данные
На вход подается два числа - количество столбиков, которые сбил Седрик и София соответственно (каждое не больше 100)
Выходные данные
Выведите количество столбиков, которые были установлены в начале игры

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

4 7
Выходные данные
10

Кролик Клевер

Линейные алгоритмы

Кролик Клевер очень любит яблоки. Также он любит угощать яблоками своих друзей. У Кролика N друзей. Он насобирал в саду K яблок и хочет их поделить поровну между своими друзьями, Неделящийся остаток остается в корзинке. Сколько яблок достанется каждому другу и сколько яблок у него останется в корзине? Помогите Кролику Клеверу посчитать эту информацию. 
Напишите для него программу.

Программа получает на вход два числа через пробел:  N - количество друзей у кролика (не более 1000), K - количество яблок (не более 1000000)
Вам необходимо вывести в первой строке число яблок, которые достанутся каждому другу
Во второй строке - число яблок, которые останутся в корзинке

Примеры входных и выходных данных:
Входные данные
10  25
Выходные данные
2
5

Целочисленное деление и остаток

Линейные алгоритмы Целые числа

Напишите программу, которая по заданным двум числам a и b, выводит на экран результат целочисленного деления и остаток, в заданном формате (смотри примеры)

На вход программы подается два числа: a и b
Необходимо вывести две строки:
в первой строке - результат целочисленного деления a на b
во второй строке - остаток от деления a на b
Форма вывода смотри в примере входных и выходных значений

Пример входных и выходных данных
Входные данные
15 6
Выходные данные
15/6=2
15%6=3

Арифметические выражения

Вычисление по заданной формуле Линейные алгоритмы

Напишите программу, которая вычисляет значение переменной y по формуле:
y=(1-x2+2,5x3+x4)2

Значение переменной x задается с клавиатуры. Типы переменных x и y определите самостоятельно.
Вывести значение переменной y на экран

Образование в Древнем Риме

Строки Линейные алгоритмы

Образование в Древнем Риме имело важное значение в жизни римлян. Богатые люди Древнего Рима верили в необходимость и важность образования. Бедные жители Рима не имели возможности получить образование, однако многие самостоятельно учились читать и писать.

В Древнем Риме было два типа школ. Первый тип – это школы для маленьких детей в возрасте до 11-12 лет, где они учились писать, читать и изучали основы математики. Дети таких школ могли легко решать различные математические задачи, в том числе продолжить следующую последовательность рядов:

1

11

21

1211

111221

312211

13112221

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

Входные данные
На вход подаются два целых числа через пробел: (\(0 <= x <=100\)) - первый член последовательности и (\(1<=n<=25\)).

Выходные данные 
Выведите n-ый ряд x-ой последовательности.

 
Примеры
Входные данные Выходные данные
1 1 4 1211

Шифр Цезаря

Линейные алгоритмы Алгоритмы обработки

Шифрование - это преобразование информации, делающее ее нечитаемой для посторонних. При этом доверенные лица могут провести дешифрование и прочитать исходную информацию.
Одним из самых известных алгоритмов шифрования является шифр Цезаря. Чтобы зашифровать последовательность, к каждому элементу последовательности прибавляется некоторое целое число. Так, например, из последовательности {1, 2, 3, 4} можно получить последовательность {5, 6, 7, 8} применением шифра Цезаря с ключом «+4».
Вы смогли перехватить две последовательности чисел A и B, которые оказались одинаковой длины. Нужно проверить, могла ли первая из них быть получена из второй применением шифра Цезаря.

Формат входных данных
В первой строке задано одно число n - длина последовательности (1≤n≤1000). Во второй строке находятся n целых чисел a1, a2, ..., an - последовательность A (−104 ≤ai≤104 ). В третьей строке находятся n целых чисел b1, b2, ..., bn - последовательность B (−104 ≤bi≤104 ).

Формат выходных данных
Выведите NO, если последовательность A нельзя получить из последовательности B шифром Цезаря, иначе выведите YES, а в следующей строке выведите ключ шифра с учетом знака.

Ввод Вывод
4
1 2 3 4
5 6 7 8
YES
4
2
1 2
2 1
NO
1
-1
-2
YES
-1

 

Зачем мне программирование?

Ввод, вывод данных Линейные алгоритмы

Скопируйте программу, записанную ниже, в окно редактора. 
Выберите язык программирования, на котором записана программа
Запустите программу на выполнение. Результаты работы программы будут отображаться в окне. 

Каждая задача тестируется на некотором числе тестов. Результаты каждого теста отображаются в окне результатов. 
Ваша цель - за каждую задачу получить 100% выполненных тестов. 
Удачи!

ПРОГРАММА:

import java.io.*;
import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        PrintWriter out = new PrintWriter(System.out);

        int a = in.nextInt();
        int b = in.nextInt();
        System.out.println(a + b);
    }
}

Палиндром

Строки Линейные алгоритмы

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

Примеры
Входные данные Выходные данные
1 level YES
2 sags NO
1

Подготовка к олимпиаде

Линейные алгоритмы Цикл for

Юра решил подготовиться к региональной олимпиаде по информатике. Он выбрал на сайте informatics.mccme.ru N задач, чтобы решить их на каникулах. В первый день Юра решил K задач, а в каждый следующий день Юра решал на одну задачу больше, чем в предыдущий день. Определите, сколько дней уйдёт у Юры на подготовку к олимпиаде.
Программа получает на вход два целых положительных числа N и K, записанных в отдельных строках — количество задач, которые намерен решить Юра, и количество задач, которые он решил в первый день подготовки.
Программа должна вывести единственное число — количество дней, которое потребовалось Юре для решения задач.
 

Ввод Вывод
10
3
3

В примере в первый день Юра решит 3 задачи, во второй день — 4, в третий день — 5, итого на решение 10 задач у Юры уйдёт 3 дня.

Таблица Пифагора

Вложенные циклы Линейные алгоритмы

Дано число N (N >= 2). Выведите таблицу Пифагора для всех целых чисел в диапазоне от 2 до N. В i-й строке j-м столбце таблицы Пифагора должно находиться произведение (i+1)⋅(j+1).

Входные данные
В первой строке ввода содержатся число N (2 <= N <= 100).

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

Примеры
Входные данные Выходные данные
1 4 4 6 8
6 9 12
8 12 16

Книги Дж. Роулинг

Цикл for Линейные алгоритмы

Джоан Роулинг - автор знаменитых историй про юного волшебника Гарри Поттера. Перед тем, как написать Гарри Поттера, Джоан изучала различные рукописи, описания и источники о Хрониках Нарнии. Позже она также начала изучать мир Средиземья Джона Толкиена. Так продолжалось ее обучение вплоть до начала рабочей практики.
Нет точных данных сколько книг прочитала Джоан, но, наверняка они у нее все сохранились.
Помогите знаменитой писательнице посчитать общее количество прочитанных страниц из всех книг.

Задача должна быть решена без использования массивов!

Входные данные
В первой строке вводится число N - количество книг (\(0 < N <=100\)). Далее идут N чисел, по одному числу в строке, - количество страниц в соответствующей книге (натуральные числа, меньшие 1000 каждое).

Выходные данные
Выведите одно число - общее количество страниц во всех книгах.
 

 

Примеры
Входные данные Выходные данные
1 3
125
215
300
640

Гирлянды из лампочек

Линейные алгоритмы Вычисление по заданной формуле

Из цветных лампочек комплектуют новогодние гирлянды. Сначала лампочки связываются в "снежинку" ровно по  K штук в каждой, а потом "снежинки" - в гирлянды, причем каждая гирлянда вмещает не более M "снежинок". Последняя гирлянда (только она одна) может быть короче других (включать в себя меньше "снежинок", чем остальные). Всего имеется N лампочек.  Сколько всего получится гирлянд, сколько "снежинок" будет в последней гирлянде и сколько лампочек останется неиспользованными (нужно использовать как можно больше лампочек)? Написать программу: вводятся три числа целых N, M, K в одной строке; вывести три числа в одной строке - сначала количество получившихся гирлянд, затем количество "снежинок" в последней гирлянде, а затем количество неиспользованных лампочек

 

Примеры
Входные данные Выходные данные
1 35 3 4 3 2 3

Мячи по сеткам

Вычисление по заданной формуле Линейные алгоритмы

На складе в коробки упаковывают волейбольные мячи. Сначала мячи пакуются в сетки ровно по  N штук в каждую, а потом сетки - в коробки, причем в одну коробку помещается не более L сеток. Последняя коробка может быть неполная. Всего имеется М мячей.  Сколько всего понадобится коробок, сколько сеток будет в последней коробке и сколько мячей останется на складе не упаковано  (упаковать нужно как можно больше мячей)? Написать программу: вводятся три числа целых M, L, N в одной строке; вывести три числа в одной строке - сначала количество потребовавшихся коробок, затем количество сеток в последней коробке, а затем количество не упакованных мячей

 

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

Книги в библиотеке

Линейные алгоритмы Вычисление по заданной формуле

 В библиотеке на стеллажи расставляют книги. Книги ставятся на полки ровно по  K штук на каждую, если полка не может быть заполнена полностью, она остается пустой. В каждом стеллаже по М полок. Последний стеллаж может быть заполнен не полностью. Всего имеется N книг. Сколько всего понадобится стеллажей, сколько полок будет заполнено на последнем стеллаже и сколько книг останется не выставлено на стеллажи (выставить нужно как можно больше книг)? Написать программу: вводятся три числа целых N, M, K в одной строке; вывести три числа в одной строке - сначала количество потребовавшихся стеллажей, затем количество заполненных книгами полок на последнем стеллаже, а затем количество не выставленных книг

 

Примеры
Входные данные Выходные данные
1 50 70 8 1 6 2

Упаковка тетрадей

Линейные алгоритмы Вычисление по заданной формуле

Упаковывают школьные тетради. Сначала тетради складывают в стопки ровно по  N штук в каждую, а потом стопки перевязывают  и складывают в коробки, причем в одну коробку помещается не более L стопок. Последняя коробка может быть неполная. Всего имеется М тетрадей.  Сколько всего понадобится коробок, сколько стопок будет в последней коробке и сколько тетрадей останется не упаковано (упаковать нужно как можно больше тетрадей)? Написать программу: вводятся три целых числа M, L, N в одной строке; вывести три числа в одной строке - сначала количество потребовавшихся коробок, затем количество стопок в последней коробке, а затем количество оставшихся тетрадей

 

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

Пакеты с мукой

Линейные алгоритмы Вычисление по заданной формуле

На складе в контейнеры упаковывают пакеты с мукой. Сначала мука пакуется в пакеты ровно по  L кг в каждый, а потом пакеты - в контейнеры, причем в один контейнер помещается не более K пакетов. Последний контейнер может быть неполным. Всего имеется М кг муки.  Сколько всего понадобится контейнеров, сколько пакетов будет в последнем контейнере и сколько кг муки останется на складе не упаковано (упаковать нужно как можно больше муки)? Написать программу: вводятся три целых числа M, K, L в одной строке; вывести три числа в одной строке - сначала количество потребовавшихся контейнеров, затем количество пакетов в последнем контейнере, а затем количество оставшейся муки (кг) 

 

Примеры
Входные данные Выходные данные
1 25 9 4 1 6 1

Рассадка за парты

Линейные алгоритмы

Пришедших на занятия учеников требуется рассадить за парты. Всего пришло N учеников. За одну парту могут сесть не более L учеников. Какое минимальное число парт потребуется? Написать программу: вводятся два целых числа N и L; вывести одно число - ответ на задачу

Примеры

Входные данные Выходные данные
1 40 10 4
 
 

Расстановка стульев

Линейные алгоритмы Вычисление по заданной формуле

В актовом зале нужно расставить стулья. Всего N стульев. В один ряд становятся не более L стульев. Какое минимальное число рядов получится? Написать программу: вводятся два целых числа N и L; вывести одно число - ответ на задачу

Примеры

Входные данные Выходные данные
1 40 10 4

Картофель по мешкам

Линейные алгоритмы Вычисление по заданной формуле

В мешки нужно разложить картофель. Всего имеется K кг картофеля. В каждый мешок помещается не более L кг картофеля. Сколько минимально понадобится мешков? Написать программу: вводятся два целых числа K и L; вывести одно число - ответ на задачу

Примеры

Входные данные Выходные данные
1 40 10 4
 

Книга по полкам

Линейные алгоритмы Вывод формулы

На полки нужно расставить N книг. На каждую полку можно поставить не более K книг. Сколько минимально потребуется полок? Написать программу: вводятся два целых числа N и K; вывести одно число - ответ на задачу.

Примеры

Входные данные Выходные данные
1 40 10 4
 
 

Яблоки по ящикам

Линейные алгоритмы Вычисление по заданной формуле

На склад привезли N кг яблок. Нужно разложить их по ящикам. В один ящик помещается не более M кг яблок. Сколько минимально потребуется ящиков?
Написать программу: вводятся два целых числа N и M; вывести одно число - ответ на задачу

Примеры

Входные данные Выходные данные
1 40 10 4

*Дартс

Условный оператор Линейные алгоритмы

Вилли играл дружеский матч с Эмми на звание чемпиона мира. Когда им надоедали долгие шахматные баталии, они переключались на дартс. Игра в дартс заключалась в следующем: каждый бросал дротик в круг, который располагался на расстоянии нескольких метров. Круг имел особую разметку, разделенную на несколько областей окружностями радиусом 10 и радиусом 5 (см. рисунок).  Попадание дротика в красную область приносило 20 баллов, попадание в зеленую - 15 баллов, попадание в желтую - 30 баллов, а попадание в центр - 50 баллов. Если дротик попадал на границу областей, то это давало количество баллов, равное максимальному баллу из граничащих областей.
Попадание дротика будем условно кодировать точкой с координатой (x ,y). Вилли и Эмми сделали по 2 броска дротиками. Необходимо посчитать, кто из них победил.
Напишите программу, которая будет подсчитывать и выводить победителя этой игры. Вывести имя победителя (W - Вилли, E - Эмми) и через пробел, набранные им баллы. При равенстве вывести W=E и количество баллов.

Входные данные
На вход подаются 4 строки по 2 числа в каждой строке (все числа целые). Первые две строки -  координаты точек (x ,y), куда попали дротики Вилли (W), третья и четвертая строка - куда попали дротики Эмми (E).

Выходные данные
Выведите имя победителя (W - Вилли, E - Эмми) и через пробел, набранные им баллы. При равенстве вывести W=E и через пробел количество набранных баллов.
 

 

Примеры
Входные данные Выходные данные
1 0 0
-5 7
1 1
5 7
W 65
2 0 0
5 5
0 0
5 5
W=E 70

Прямоугольники

Линейные алгоритмы Условный оператор

Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего и правого верхнего углов каждого из них. Найти координаты левого нижнего и правого верхнего углов минимального прямоугольника, содержащего указанные прямоугольники (граница прямоугольника может касаться вложенных в него  прямоугольников).

Входные данные
Первая строка - координаты углов первого прямоугольника  (4 числа через пробел: x1, y1, x2, y2).
Вторая строка - координаты углов второго прямоугольника (4 числа через пробел: x3, y3, x4, y4).

Выходные данные
4 числа через пробел - координаты левого нижнего и правого верхнего углов минимального прямоугольника.

 

Примеры
Входные данные Выходные данные
1 0 0 7 4
3 1 9 5
0 0 9 5

Вредный Седрик

Линейные алгоритмы Целые числа

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

Формат входных данных
На вход подаётся четырёхзначное число.

Формат выходных данных
Выведите новое число, образованное отбрасыванием первой и последней цифр исходного числа.

Бельчонок с орехом

Линейные алгоритмы Вычисление по заданной формуле

Любимец Софии Бельчонок живет на очень высоком дереве на высоте h метров. Он хочет поднять в свое дупло орех. За день он поднимается вместе с орехом на a метров, а за ночь орех скатывается вниз на b метров. На какой день бельчонок поднимет орех до своего дупла?
 

Формат входных данных
Программа получает на вход натуральные числа hab (h>b).

Формат выходных данных
Программа должна вывести одно натуральное число. Гарантируется, что a > b.

k-я секунда суток

Линейные алгоритмы Вычисление по заданной формуле

Идёт k-я секунда суток. Определите, сколько целых часов h и целых минут m прошло c начала суток. Например, если

\(k = 13257 = 3\cdot3600 + 40\cdot60+57\),

то \(h = 3, m = 40\).

Входные данные
На вход программе подается целое число k (\(0 <= k <= 86399\)).

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

It is ... hours ... minutes.

Вместо многоточия программа должна выводить значения h и m, отделяя их от слов ровно одним пробелом.

 
Запрещено использовать какие-либо алгоритмические конструкции, кроме арифметических операций. Список запрещенных операций смотри в в строке запрещенные операторы.
 
Примеры
Входные данные Выходные данные
1 13257 It is 3 hours 40 minutes.

Электронные часы

Линейные алгоритмы Целые числа

С начала суток прошло n минут.  Определите, сколько часов и минут будут показывать электронные часы в этот момент.
Программа должна вывести два числа: количество часов (от 0 до 23) и количество минут (от 0 до 59). Учтите, что число n может быть больше, чем количество минут в сутках.
 

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

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

 
Запрещено использовать какие-либо алгоритмические конструкции, кроме арифметических операций. Список запрещенных операций смотри в в строке запрещенные операторы.
 
Примеры
Входные данные Выходные данные
1 150 2 30
2 1441 0 1

Число 2 в степени N

Линейные алгоритмы Быстрое возведение в степень

Дано натуральное число N (вводится с клавиатуры). Вычислите \(2^N\). Выведите на экран вычисленное значение (\(1<=N<=15\)).


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

Выходные данные
Выведите на экран результат выражения \(2^N\).
 
 

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

Палиндром

Вложенные циклы Линейные алгоритмы

Палиндром - это число, одинаково читающееся в обоих направлениях (не меняется при перестановке своих цифр в обратном порядке).
Дано натуральное число K. Выведите на экран количество натуральных палиндромов, не превосходящих число К.

Входные данные 
Задано единственное число K (\(1<=K<=100000\)).

Выходные данные 
Необходимо вывести количество натуральных палиндромов, не превосходящих K.
 

Примеры
Входные данные Выходные данные
1 1 1
2 100 18

Факториал числа

Цикл for Линейные алгоритмы

По целому натуральному числу N вычислите \(N!\) ("эн-факториал") – произведение всех натуральных чисел от 1 до  N  (\( N!=1 \cdot 2 \cdot 3 \cdot …\cdot N\) ).

Входные данные
Вводится единственное число N  – натуральное, не превосходит 12.

Выходные данные
Выведите полученное значение \(N!\)
 

 

Примеры
Входные данные Выходные данные
1 5 120

Моделирование автомата

Линейные алгоритмы Условный оператор

Напишите программу, которая моделирует работу следующего автомата. Автомат получает на вход трехзначное число и строит новое число следующим образом:

  1. вычисляются суммы первой и второй, затем - второй и третьей цифр;
  2. эти суммы записываются в порядке невозрастания.
Например, для числа 639 получаем суммы: 6 + 3 = 9; 3 + 9 = 12. Результат: 129. Напишите программу, которая реализует работу данного автомата.

Входные данные 
На вход программе подается одно число n (100 <= n <= 999).

Выходные данные 
Необходимо вывести новое число.
 
Примеры
Входные данные Выходные данные
1 654 119

*Ипотека для Бейливика

Вычисление по заданной формуле Линейные алгоритмы

Дворецкий Бейливик решил купить квартиру. Для покупки квартиры ему необходимо оформить ипотеку. Он знает, что ему нужен займ размером R монет. Бейливик хочет определить переплату при известной процентной ставке P% в год и периоде M месяцев, на который берется ипотека. Оплата осуществляется ежемесячно. Ипотечные платежи - аннуитетные. 

Формат входных данных
На вход программе подаются три числа, каждое с новой строки - размер займа - целое число R (\(0 < R < 5 \cdot 10^6\)), годовая процентная ставка - вещественное число P (\(0 < P <= 15\))  и период кредитования (в месяцах) - целое число M (\(0 < M <= 300\)).

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

Эмбер учится считать

Вычисление по заданной формуле Линейные алгоритмы

 Принцесса Эмбер, ее брат и София учатся в Академии волшебников, где у них также есть математика (никто же не сомневается, что математика важна волшебникам так же, как и знание различных заклинаний). 
Недавно учитель математики поведал детям о хитром способе возведения в квадрат натуральных чисел, оканчивающихся на цифру 5. Теперь ребята могут с легкостью возводить в квадрат двузначные (и даже некоторые трехзначные) числа, оканчивающиеся на 5.
Способ заключается в следующем:

  • для возведения в квадрат числа, оканчивающегося на 5, достаточно умножить число, полученное из исходного вычеркиванием последней пятерки на следующее по порядку число, затем остается лишь приписать «25» к получившемуся результату справа.
Например, для того, чтобы возвести число 125 в квадрат достаточно 12 умножить на 13 и приписать 25, т.е. приписывая к числу 12*13=156 число 25, получаем результат 15625, т.е. 1252=15625.

Эмбер решила потренироваться в новом навыке, и хочет, чтобы ее кто-то проверил. Но так как она слишком горда, чтобы просить чьей-то помощи в Королевстве. Она просит вас написать для нее программу, по которой бы она смогла себя проверить.

Формат входных данных
На вход подается целое число A, оканчивающееся цифрой 5 и не превышающее \(400005\).

Примечание: для решения задачи на С++ используйте тип данных long long

Формат выходных данных
Выведите одно число - A2.

Рецепт варенья

Линейные алгоритмы Вычисление по заданной формуле

Marmalade Fruit Preserves Jar Clip Art - Jam @clipartmax.comКролик Клевер и принцесса София нашли рецепт вишневого варенья.
Рецепт вишневого варенья достаточно прост: "Для варенья возьмите вишню, сахар и воду в соотношении \(3:2:1\)".
Помогите друзьям посчитать сколько получится варенья, если они возьмут воды в размере n литров (будем считать, что вода не выкипает). Сколько надо взять вишни и сахара? 
Напишите для друзей программу, которая по введенному значению воды (\(n <= 10^6)\) будет выводить, сколько надо взять вишни и сахара и сколько получится варенья.


Формат входных данных
На вход подается одно целое число n.

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

Зачем мне программирование?

Ввод, вывод данных Линейные алгоритмы

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

Задание:
1) Скопируйте программу, записанную ниже, в окно редактора. 

Программа
a = int(input())
b = int(input())
print(a + b)


2) Нажмите на кнопку Проверить. Результаты работы программы будут отображаться в окне "Результат проверки программы". 

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

Ваша цель написать программу, которая пройдет все тестовые случаи. В этом случаи вы получите сообщение ВЫПОЛНЕНО 100% ТЕСТОВ. 

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


Удачи!

 

Десятки числа

Линейные алгоритмы Целые числа

Кролик Клевер вместе с друзьями стали изучать математику. Первое что они узнали - это то, что все числа состоят из цифр. Напишите программу, которая поможет Кролику Клеверу определить цифру десятков в данном числе. 
Напомним, что десятки - это предпоследняя цифра числа.
 

Входные данные
Вводится натуральное число.
 
Выходные данные 
Выведите ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 2007 0
2 90 9
 

Пирожки

Линейные алгоритмы Вычисление по заданной формуле

Кролик Клевер пошел в пекарню за пирожками. Один пирожок стоит a рублей и b копеек. Определите, сколько рублей и копеек нужно заплатить за n пирожков.
 

Входные данные 
Программа получает на вход три строки, в каждой из которой записано по одному целому числу: в первой строке записано число a, во второй - число b, в третьей - число n.

Выходные данные
Программа должна вывести одну строку, в которой записано стоимость покупки в рублях и копейках (формат вывода смотри в примерах).
 

Кролик Клевер

Остатки Линейные алгоритмы

Кролик Клевер очень любит яблоки. Также он любит угощать яблоками своих друзей. У Кролика N друзей. Он собрал в саду K яблок и хочет их поделить поровну между своими друзьями, неделящийся остаток он оставит в корзинке. Сколько яблок достанется каждому другу и сколько яблок у него останется в корзине?
Помогите Кролику Клеверу посчитать эту информацию. Напишите для него программу.

Формат входных данных
Программа получает на вход два числа: N - количество друзей у кролика (не более 1000), K - количество яблок (не более 1000000). Каждое число записано в отдельной строке.

Формат выходных данных
Необходимо вывести в первой строке число яблок, которые достанутся каждому другу. Во второй строке - число яблок, которые останутся в корзинке.

Омега-лямбда-исчисление

Строки Линейные алгоритмы

Омега-лямбда-исчисление - инновационная разработка "British Scientists, Inc" в сфере формальной логики. Любое выражение омега-лямбда-исчисления состоит из круглых скобок и термов (термом может быть любая последовательность из букв латинского алфавита). 
Иззи-редукция - одна из операций над такими выражениями. При её выполнении проверяется, является ли скобочная последовательность в выражении правильной. Термы при этом игнорируются. Если последовательность правильная - она превращается в терм gg, если нет - в терм wp
На вход подаётся омега-лямбда-выражение длиной не более 107 символов. Нужно вывести результат его иззи-редукции.
 

 

Примеры
Входные данные Выходные данные
1 a(b(xx)f(g(x))m(y)) gg

Вывод переменных - 1

Ввод, вывод данных Линейные алгоритмы

Составить программу вывода на экран четырех целых чисел в столбик, по два числа в одной строке через пробел. Числа вводятся с клавиатуры в одну строку через пробел. Вначале каждой строки добавьте ее номер (см. пример).
 

Пример
Входные данные Выходные данные
1 5 7 8 9 line 1: 5 7
line 2: 8 9

Вывод переменных - 2

Ввод, вывод данных Линейные алгоритмы

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

Пример
Входные данные Выходные данные
1 5 7 5   7

Вывод переменных - 3

Ввод, вывод данных Линейные алгоритмы

Составить программу вывода на экран в столбик двух чисел, вводимых с клавиатуры через пробел. В конце первой строки добавьте фразу endline.
 

Пример
Входные данные Выходные данные
1 5 7 5 endline
7

Вывод переменной - 4

Линейные алгоритмы Ввод, вывод данных

Составить программу вывода на экран числа, вводимого с клавиатуры. Перед выводимым числом должно идти сообщение "It was".
 

Пример
Входные данные Выходные данные
1 5 It was 5

Алгоритм

Линейные алгоритмы

Реализуйте на одном из языков программирования алгоритм, представленный на схеме.
В первой строке ввода содержатся два целых числа N и K (1 ≤ N, K ≤ 10001).
Вывести одно целое число – сумму N и K после завершения работы алгоритма.


Ввод Вывод
30 15 19

Алгоритм

Алгоритмы обработки Линейные алгоритмы

Реализуйте на одном из языков программирования алгоритм, представленный на схеме.
В первой строке ввода содержатся целое число N (1 ≤ N ≤ 100). Далее следует N строк, содержащих по одному целому числу в диапазоне от −1000 до 1000.
Вывести одно целое число – значение M после завершения работы алгоритма.



Ввод Вывод
4
2
3
-7
4
5

Алгоритм

Линейные алгоритмы Условный оператор Цикл for

Реализуйте на одном из языков программирования алгоритм, представленный на схеме. Выражение S mod K означает вычисление остатка от деления S на K.
В первой строке ввода содержится целое число N (1 ≤ N ≤ 100). Далее следует N строк, содержащих по одному целому числу в диапазоне от 1 до 1000.
Вывести сообщение Yes или No как указано в алгоритме.


 
Ввод Вывод
3
2
1
3
Yes
3
1
2
3
No

Разбиение на пары

Линейные алгоритмы

Мария Ивановна написала на доске четыре числа: abc и d. После чего предложила своему классу разбить эти числа на две пары так, чтобы сумма произведений чисел в парах была максимальна.

Например, если на доске написаны числа 5, 6, 7 и 8, то оптимально разбить их на пары (5, 6) и (7, 8), в этом случае искомая сумма равна 5 × 6 + 7 × 8 = 86.

Формат ввода

На вход подаются четыре целых числа: abc и d. Все числа по модулю не превышают 1000.

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

Выведите искомую максимальную сумму.

Пример

Ввод Вывод
5 6 7 8
86

Достать шоколадку

Вычисление по заданной формуле Линейные алгоритмы

Лёлик пришел в школу и решил подкрепиться шоколадкой. Он подошел к автомату с шоколадками и с удивлением обнаружил, что на него поставили защиту от первоклассников. А именно, для того, чтобы достать шоколадку, необходимо решить уравнение ax + b = c. Программа безопасности просит ввести целую часть корня этого уравнения, слово NO, если корней нет, или INFINITY, если корней бесконечно много. Чтобы ежедневно покупать шоколадки, Лёлик решил написать программу для решения уравнения, но не смог. А вы сможете? 
 
Формат ввода
На вход подаются три действительных числа, разделенных пробелом: a, b, и c. Все числа по модулю не превышают 109
 
Формат вывода
Выведите решение уравнения. Решением может являться либо целое число - целая часть корня уравнения,корня уравнения, либо слово NO, если корней нет, либо INFINITY, если корней бесконечно много. 
 
Пример
Ввод Вывод
2 3 0 -2

Поход в музей

Линейные алгоритмы Вычисление по заданной формуле

Лёлик наконец решил просветиться, и пошел в музей. В музее ему так понравилось, что он решил позвать туда своего друга Болика. Болик захотел присоединиться к своему другу, однако ему нужно доехать на автобусе №154 до метро, затем проехать три станции на метро, после чего проехать на автобусе №93 до музея. Помимо этого Болику нужно купить билет в музей. Теперь Болик хочет посчитать сколько денег ему нужно, чтобы встретиться с Лёликом в музее.
 
Известно, что проезд на автобусе стоит a рублей, в метро b рублей, а вход в музей стоит c рублей.
 
Формат ввода
 
На вход подаются три натуральных числа, разделенных пробелом: a, b, и c. Все числа не превышают 109.
 
Формат вывода
 
Выведите единственное натуральное число — сумму, которую должен иметь Болик.
 
Пример
Ввод Вывод
10 30 50 100
 

Вывод переменной - 5

Линейные алгоритмы Ввод, вывод данных

Напишите программу, которая вводит с клавиатуры целое число и выводит текст, аналогичный приведенному в примере.

 
Пример
Входные данные Выходные данные
1 2007 The next number for the number 2007 is 2008.
The previous number for the number 2007 is 2006.

Городки Седрика

Линейные алгоритмы

Волшебник Седрик пригласил принцессу Софию и ее друзей поиграть в свою версию старинной игры "Городки".  Седрик расставил несколько столбиков в ряд, которые необходимо сбить битой по порядку. Седрик сбивал столбики один за другим, начиная с самого левого, София — с самого правого. В какой-то момент они сбили последний столбик вместе.

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


Формат входных данных
На вход подается два числа - количество столбиков, которые сбил Седрик и София соответственно (каждое не больше 100). Каждое число записано в отдельной строке.

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

Увеличение чисел - 2

Линейные алгоритмы Цикл for Ввод, вывод данных

В первой строке входных данных записано число N (от 1 до 100). В каждой из последующих N строк записано сначала имя человека (не более 20 символов, без пробелов), а затем через пробел число (от 1 до 200) - его возраст.

Требуется вывести информацию в том же формате, увеличив число в каждой строке (кроме первой, где записано число N) на 1.

 
Примеры
Входные данные Выходные данные
1
2
Vasya 15
Emmanuil 137
2
Vasya 16
Emmanuil 138
 

Меньшее и большее

Условный оператор Линейные алгоритмы

Даны два целых числа a и b. Меньшее из двух чисел удвоить, а большее - утроить.

Входные данные
С клавиатуры вводятся 2 различных целых числа.

Выходные данные 
Необходимо вывести на экран преобразованные числа, сначала преобразованное число a, затем - b.
 

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

Максимум из четырех чисел

Условный оператор Линейные алгоритмы

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

АЛГОРИТМ
  1. Оформите ввод четырех значений переменных с клавиатуры (каждое число записано в отдельной строке).
  2. Присвойте значение переменной mx первой из четырех переменных.
  3. Если значение, находящееся в переменной mx меньше значения второй переменной, то замените значение переменной mx на значение второй переменной.
  4. Если значение, находящееся в переменной mx меньше значения третьей переменной, то замените значение переменной mx на значение третьей переменной.
  5. Если значение, находящееся в переменной mx меньше значения четвертой переменной, то замените значение переменной mx на значение четвертой переменной.
  6. Выведите значение переменной mx на экран.
Следуя данному алгоритму, напишите программу.

Входные данные
Программа получает на вход 4 строки, в каждой из которой записано по одному целому числа.

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

Число с максимальной суммой делителей

Задачи на процедуры и функции Алгоритмы обработки Линейные алгоритмы

Напишите функцию, вычисляющую сумму делителей числа

Используя данную функцию, напишите программу, которая среди n натуральных чисел, вводимых с клавиатуры, выводит на экран число с максимальным суммой делителей
Входные данные:
в первой строке вводится число n - количестве чисел (n<=100),
далее идут n строк по одному натуральному числу в строке
Выходные данные:
программа должна вывести одно  число, в котором сумма делителей числа максимальна среди всех чисел, если таких чисел несколько, то необходимо вывести число, которое встретилось в последовательности раньше

Количество баллов за задачу уточняется после ручной проверки (и будет снижено, в случае если вы не используете функцию!).
 

Пример

Ввод

Вывод

5
2
5
59
72
34
72
2
78
81
78
 

Сложение без сложения

Рекурсия Линейные алгоритмы

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

Примеры

Входные данные Выходные данные
1 8 7 15

Зачем мне программирование?

Линейные алгоритмы

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

Каждая задача тестируется на некотором количестве тестов. Результаты каждого теста отображаются в окне результатов. 
Ваша цель - за каждую задачу получить 100% выполненных тестов. 

Удачи!
 

Исходный код программы
#include <iostream>
using namespace std;

int main()
{
  int a, b;
  cin  >> a >> b;
  cout << a + b << endl;
  return 0;
}

Формула - 2

Вычисление по заданной формуле Линейные алгоритмы

Напишите программу, которая вычисляет значение \(y = 4\cdot(x–3)^6 – 7\cdot(x–3)^3 + 2\), при заданном значении x (x - целое число, x  <10).

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

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

Программа должна вывести значение y.
 

Примеры
Входные данные Выходные данные
1 5 202

Вывод строк - 1

Линейные алгоритмы Ввод, вывод данных

Составить программу вывода на экран следующей информации.
2 kg
13 17

Вывод строк - 2

Линейные алгоритмы Ввод, вывод данных

Вывести на экран числа 5, 10 и 21 одно под другим.
5
10
21

Вывод строк - 4

Линейные алгоритмы Ввод, вывод данных

Вывести на одной строке числа 7, 15 и 100 с двумя пробелами между ними.
7  15  100

Вывод строк - 5

Линейные алгоритмы Ввод, вывод данных

Вывести на одной строке числа 1, 13 и 49 с одним пробелом между ними.
1 13 49

Вывод переменной - 6

Ввод, вывод данных Линейные алгоритмы

Составить программу вывода на экран числа, вводимого с клавиатуры. После вводимого числа должно следовать сообщение "It was entered".
 

Пример
Входные данные Выходные данные
1 5 5 It was entered

Вывод переменной - 7

Ввод, вывод данных Линейные алгоритмы

Составить программу вывода на экран числа, вводимого с клавиатуры. Выводимому числу должно предшествовать сообщение "Your number is"
 

Пример
Входные данные Выходные данные
1 5 Your number is 5

Вывод строк - 6

Линейные алгоритмы Вычисление по заданной формуле

Вывести на экран число Пи с точностью до сотых.
3.14

20247

Линейные алгоритмы

Даны координаты двух полей шахматной доски (координаты клетки - это 2 числа от 1 до 8: номер столбца и номер строки)
 
Одно ли цвета эти клетки на шахматной доске? Вывести в выходной файл сообщение YES, если они одного цвета, и NO иначе
 
Пример ввода:
1 1 2 2
 
Пример вывода:
YES
 
 
Пример ввода:
1 1 1 4
 
Пример вывода:
NO
 

Пересечение отрезков

Линейные алгоритмы

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

 
Входные данные Вводится сначала число N (1<=N<=100). Далее вводится N пар чисел, задающих координаты левого и правого концов каждого отрезка. Все координаты - числа из диапазона от 0 до 30000. Левый конец отрезка всегда имеет координату строго меньшую, чем правый.
 
Выходные данные Выведите длину общей части этих отрезов. Если у всех этих отрезков общей части нет, выведите 0.
 
Примеры
Входные данные Выходные данные Пояснение
1
3
1 10
3 15
2 6
3 общая часть этих отрезков - отрезок от 3 до 6.
2
3
1 10
2 20
11 20
0 у этих отрезков нет общей части
 
 

Сумма цифр чисел делится на K

Линейные алгоритмы Алгоритмы обработки

Вводятся два числа N и K. Выведите количество чисел из диапазона от 1 до N включительно таких, что их сумма цифр делится на K.


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

Выходные данные
Выведите на экран ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 100 3 33
2 22 4 5

Одного ли цвета клетки доски?

Линейные алгоритмы

Даны координаты двух полей шахматной доски (координаты клетки - это 2 числа от 1 до 8: номер столбца и номер строки).  Напишите программу, которая определяет одного ли цвета эти клетки на шахматной доске? 

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

Выходные данные
Выведите на экран слово YES, если они одного цвета, и NO иначе.
 
 
Примеры
Входные данные Выходные данные
1 1 1 2 2 YES
2 1 1 1 4 NO

15817

Задачи на процедуры и функции Линейные алгоритмы

Составьте процедуру, осуществляющую обмен значей двух переменных величин. Используя данную процедуру, напишите программу, в результате которой величина a меняется с величиной b, а величина c - с величиной d.

Входные данные
Во входной строке содержится четыре целых числа: a, b, c, d.

Выходные данные 
Программа должна вывести на экран четыре целых числа после перестановки: a, b, c, d.

 

Примеры
входные данные
7 8 1 5
выходные данные
8 7 5 1

Вычислите a+b

Линейные алгоритмы Ввод, вывод данных

Вычислите a+b.

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

Единственная строка входных данных содержит два натуральных числа через пробел. Значения чисел не превышают 109.

Выходные данные
Выведите на экран результат выражения a+b.

Новое число

Строки Линейные алгоритмы

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

Входные данные
На вход программе подаётся одно число.

Выходные данные
Необходимо вывести новое число.
  

Запрещено использовать какие-либо алгоритмические конструкции, кроме арифметических операций. Список запрещенных операций смотри в в строке запрещенные операторы.
 
Примеры
Входные данные Выходные данные
1 4561 5416

Посылка от мамы

Остатки Линейные алгоритмы

Мама прислала Дяде Фёдору посылку с конфетами. Дядя Фёдор хочет разделить конфеты поровну между собой, Матроскиным и Шариком. Если конфеты не делятся на троих поровну, остаток достанется Галчонку.

Сколько конфет получит каждый из троих друзей, и сколько останется Галчонку?

Входные данные: Одно целое число N (1 ≤ N ≤ 10000) — количество конфет в посылке.

Выходные данные: Два числа через пробел: сколько конфет получит каждый из друзей и сколько достанется Галчонку.

Письмо Деду Морозу

Линейные алгоритмы

Дядя Фёдор решил написать письмо Деду Морозу. Он знает, что письмо дойдёт быстрее, если в нём чётное количество слов — так устроена волшебная почта. Шарик подсказал, что если слов нечётное, можно дописать в конце слово «Пожалуйста».

Дядя Фёдор написал письмо и хочет понять: нужно ли дописывать слово или письмо уже готово к отправке?

Входные данные: В первой строке одно целое число N (1 ≤ N ≤ 100) — количество слов в письме.

Выходные данные: Выведите «Готово», если письмо можно отправлять, или «Дописать», если нужно добавить слово.