Алгоритмы обработки

179 задач
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Для натурального числа N (1<=N<=105) выведите на экран все его делители, включая 1 и само число N, в последней строке выведите количество этих делителей, включая 1 и само число N.

Входные данные
На вход подается натуральное число N (1<=N<=105).

Выходные данные
В первой строке выведите все делители числа N, в порядке возрастания, разделяя их одним пробелом. Во второй строке выведите одно число - количество делителей исходного числа.
 
Примеры
Входные данные Выходные данные
1 4 1 2 4
3
Недавно Вася решил всерьез заняться машинным обучением и распознаванием образов. Однако, наука это обширная, а начинать с чего-то надо, поэтому его учитель информатики посоветовал ему начать с анализа 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 символов — описание таблицы. Гарантируется, что таблица представляет собой график функции, описанной в условии.
Выходные данные
В единственной строке выведите одно число — количество локальных максимумов в
данном графике функции.
 
Ввод Вывод
3 7
*.*...*
.*.*.*.
....*..
 
2
3 5
.....
****.
....*
1

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

Входные данные: во входной строке записаны через пробел размеры матрицы: количество строк и количество столбцов ( 1 <= 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

Напишите программу, которая выводит на экран транспонированную матрицу. Транспонирование матрицы - это преобразование, в результате которого строки становятся столбцами, а столбцы – строками. Саму матрицу изменять не нужно. Достаточно вывести ее в нужном виде.

Входные данные: в первой строке записаны через пробел размеры матрицы: количество строк и количество столбцов ( 1 ≤ ≤ 100 ). В следующих строках записаны строки матрицы, в каждой – по натуральных чисел, разделённых пробелами.

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

Пример.
Входные данные Выходные данные
1 4 5
1 2 3 4 5
6 7 8 9 3
5 4 3 2 1
7 9 8 7 6
1 6 5 7
2 7 4 9
3 8 3 8
4 9 2 7
5 3 1 6
При решении задачи используйте метод copy()

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

Дана строка.

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

Сначала выведите третий символ этой строки.

Во второй строке выведите предпоследний символ этой строки.

В третьей строке выведите первые пять символов этой строки.

В четвертой строке выведите всю строку, кроме последних двух символов.

В пятой строке выведите все символы с четными индексами (считая, что индексация начинается с 0, поэтому символы выводятся начиная с первого).

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

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

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

В девятой строке выведите длину данной строки.


Примеры
Входные данные Выходные данные
1 Abrakadabra r
r
Abrak
Abrakadab
Arkdba
baaar
arbadakarbA
abdkrA
11

Дана строка. Удалите из этой строки все символы @.

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

Вводится строка.

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

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

Входные данные Выходные данные
1 Bilbo.Baggins@bagend.hobbiton.shire.me Bilbo.Bagginsbagend.hobbiton.shire.me

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

Входные данные: вводится одна строка, состоящая только из латинских букв и цифр. Количество символов в строке не превышает 100.
Выходные данные: выведите слово "YES", если указанный пароль является криптостойким, и "NO" – в противном случае (заглавными латинскими буквами).
Примеры.
Входные данные Выходные данные
1 e NO
2 AAAbbb123 YES

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

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

Пример.

Входные данные Выходные данные
In the hole in the ground there lived a hobbit In tobbit
На вход подается число N - количество элементов массива. 
Далее идут два массива из N целых чисел каждый: элементы первого массива идут по одному в каждой строке, элементы второго массива - записаны все в одной строке через пробел.
Заполните два массива и выведите их элементы через пробел в одну строку: первый массив в первой строке, второй массив во второй строке.

 
Примеры
Входные данные Выходные данные
1 3
1
2
3
4 5 6
1 2 3
4 5 6
Алфавитно-частотный словарь - это частотный словарь, в котором слова с указанием их частоты (встречаемости) расположены по алфавиту.
Постройте словарь, в котором справа от каждого слова указано сколько раз оно встречается в исходном тексте.
Признаком окончания текста является  строка с единственным словом "END!". Порядок вывода слов роли не играет.

Входные данные
На вход подаются строки текста. Последняя строка содержит одно единственное слово "END!" и является признаком окончания текста.

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

 
Примеры
Входные данные Выходные данные
1 Съешь ещё этих мягких французских булок
END!
Съешь 1
ещё 1
этих 1
мягких 1
французских 1
булок 1

 

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

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

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

 

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

 

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

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

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

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

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

В первой строке задано два числа n и dt — число записей в журнале событий турникета и ограничение времени, выбранное начальником охраны, соответственно (1≤n≤1000, 3≤dt≤1440).

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

  • Время события в формате hh:mm
  • Фамилия студента, состоящая из не более чем 20 букв латинского алфавита, первая из которых заглавная.
  • Тип события: in, если произошел вход и out, если произошел выход.

 

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

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

В первой строке выведите число нарушителей. После чего выведите фамилии нарушителей в лексикографическом порядке.

 

Ввод Вывод
6 10
01:23 Petrov in
01:24 Ivanov out
01:25 Petrov out
01:27 Ivanov in
01:32 Petrov in
01:33 Ivanov out
1
Ivanov
6 10
01:23 Petrov in
01:24 Ivanov out
01:25 Petrov out
01:27 Ivanov in
01:33 Petrov in
01:34 Ivanov out
0

 

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

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

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

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

Входные данные
В первой строке задано два числа n и dt — число записей в журнале событий турникета и ограничение времени, выбранное начальником охраны, соответственно (1≤n≤1000, 3≤dt≤1440).
В следующих nn строках даны записи в журнале событий в хронологическом порядке. Запись в журнале состоит из трех частей, разделенных пробелом:
  •  Время события в формате hh:mm
  •  Фамилия студента, состоящая из не более чем 20 букв латинского алфавита, первая из которых заглавная.
  •  Тип события: in, если произошел вход и out, если произошел выход.

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


Выходные данные
В первой строке выведите число нарушителей. После чего выведите фамилии нарушителей в лексикографическом порядке.
 

Ввод Вывод
6 10
01:23 Petrov in
01:24 Ivanov out
01:25 Petrov out
01:27 Ivanov in
01:32 Petrov in
01:33 Ivanov out
1
Petrov
6 10
01:23 Petrov in
01:24 Ivanov out
01:25 Petrov out
01:27 Ivanov in
01:33 Petrov in
01:34 Ivanov out
0



 

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

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

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


Примеры
Входные данные Выходные данные
1 4 5
1 2 3 4 5
6 12 8 9 10
11 12 12 14 15
16 17 18 12 20
207

Напишите программу, которая выводит на экран транспонированную матрицу.
Транспонирование матрицы - это преобразование, в результате которого строки становятся столбцами, а столбцы – строками.

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

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


Примеры
Входные данные Выходные данные
1 4 5
1 2 3 4 5
6 7 8 9 3
5 4 3 2 1
7 9 8 7 6
1 6 5 7
2 7 4 9
3 8 3 8
4 9 2 7
5 3 1 6
Недавно Петя занялся изучением Excel. Сегодня он узнал о возможности условного форматирования: для каждой непустой ячейки выбранной строки можно применить логическое выражение, при истинности которого ячейка будет окрашена в соответствующий цвет.
Петя придумал два числа a и b, а затем применил следующее условное форматирование: если число в ячейке меньше либо равно a или строго больше b, то ячейка окрашивается в красный цвет. П
о данным n ячейкам строки и числам a и b, найдите число ячеек, которые покрасятся в красный цвет.
Формат входного файла
В первой строке  находится одно натуральное число n — число непустых ячеек в строке (1 ≤ n ≤ 100). Во второй строке через пробел записаны n целых чисел ci — значения, записанные в непустых ячейках строки (1 ≤ ci ≤ 1000). В третьей строке через пробел записаны два целых числа a и b (1 ≤ a < b ≤ 1000) — придуманные Петей числа.
Формат выходного файла
Выведите одно число — число красных ячеек, после применения условного форматирования.
 
Ввод Вывод
4
1 2 3 4
1 4
1
5
6 2 1 8 3
3 6
4

Дана строка. Замените в этой строке все цифры 1 на слово one.


Входные данные 
Вводится строка.

Выходные данные 
Выведите ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 1+1=2 one+one=2

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

Входные данные
Вводится строка.

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

 

Примеры
Входные данные Выходные данные
1 In the hole in the ground there lived a hobbit In tobbit

Дана строка. Удалите из этой строки все символы @.

Входные данные
Вводится строка.

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

 

Примеры
Входные данные Выходные данные
1 Bilbo.Baggins@bagend.hobbiton.shire.me Bilbo.Bagginsbagend.hobbiton.shire.me
Поделиться
Класснуть