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

120 задач
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Дворецкий Бейливик решил купить квартиру. Для покупки квартиры ему необходимо оформить ипотеку. Он знает, что ему нужен займ размером 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). Каждое число записано в отдельной строке.

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

 

Примеры
Входные данные Выходные данные
1 a(b(xx)f(g(x))m(y)) gg
Составить программу вывода на экран четырех целых чисел в столбик, по два числа в одной строке через пробел. Числа вводятся с клавиатуры в одну строку через пробел. Вначале каждой строки добавьте ее номер (см. пример).
 
Пример
Входные данные Выходные данные
1 5 7 8 9 line 1: 5 7
line 2: 8 9
Составить программу вывода на экран двух чисел в строку через три пробела. Исходные числа вводятся с клавиатуры в одной строке через пробел.
 
Пример
Входные данные Выходные данные
1 5 7 5   7
Составить программу вывода на экран в столбик двух чисел, вводимых с клавиатуры через пробел. В конце первой строки добавьте фразу endline.
 
Пример
Входные данные Выходные данные
1 5 7 5 endline
7
Реализуйте на одном из языков программирования алгоритм, представленный на схеме.
В первой строке ввода содержатся два целых числа 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

Мария Ивановна написала на доске четыре числа: abc и d. После чего предложила своему классу разбить эти числа на две пары так, чтобы сумма произведений чисел в парах была максимальна.

Например, если на доске написаны числа 5, 6, 7 и 8, то оптимально разбить их на пары (5, 6) и (7, 8), в этом случае искомая сумма равна 5 × 6 + 7 × 8 = 86.

Формат ввода

На вход подаются четыре целых числа: abc и d. Все числа по модулю не превышают 1000.

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

Выведите искомую максимальную сумму.

Пример

Ввод Вывод
5 6 7 8
86

Лёлик наконец решил просветиться, и пошел в музей. В музее ему так понравилось, что он решил позвать туда своего друга Болика. Болик захотел присоединиться к своему другу, однако ему нужно доехать на автобусе №154 до метро, затем проехать три станции на метро, после чего проехать на автобусе №93 до музея. Помимо этого Болику нужно купить билет в музей. Теперь Болик хочет посчитать сколько денег ему нужно, чтобы встретиться с Лёликом в музее.
 
Известно, что проезд на автобусе стоит a рублей, в метро b рублей, а вход в музей стоит c рублей.
 
Формат ввода
 
На вход подаются три натуральных числа, разделенных пробелом: a, b, и c. Все числа не превышают 109.
 
Формат вывода
 
Выведите единственное натуральное число — сумму, которую должен иметь Болик.
 
Пример
Ввод Вывод
10 30 50 100
 

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

 
Пример
Входные данные Выходные данные
1 2007 The next number for the number 2007 is 2008.
The previous number for the number 2007 is 2006.

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

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


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

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

В первой строке входных данных записано число N (от 1 до 100). В каждой из последующих N строк записано сначала имя человека (не более 20 символов, без пробелов), а затем через пробел число (от 1 до 200) - его возраст.

Требуется вывести информацию в том же формате, увеличив число в каждой строке (кроме первой, где записано число N) на 1.

 
Примеры
Входные данные Выходные данные
1
2
Vasya 15
Emmanuil 137
2
Vasya 16
Emmanuil 138
 
Поделиться
Класснуть