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

3 082 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: ✓ успешные, ✗ неуспешные.
Clipart Sofia The First @clipartmax.com Принцесса София и кролик Клевер очень любят варенье. Принцесса съедает банку варенья за n минут, а кролик - за m минут. Определите за сколько минут они съедят банку варенья вместе.

Входные данные
На вход подаются через пробел два целых числа: n и m (n, m <= 1000).

Выходные данные
Вам необходимо вывести на экран одно число - время в минутах, которое понадобится друзьям, чтобы съесть одну банку варенья вместе (неполная минута считается за 1 минуту).
 
Примеры
№ Входные данные Выходные данные
1 9 6 4

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

Входные данные
Программа получает на вход натуральные числа h, a, b.

Выходные данные
Программа должна вывести одно натуральное число. Гарантируется, что a > b.
 
Примеры
№ Входные данные Выходные данные
1 10
3
2
8
Вася любит играть в шахматы со своим лучшим другом Петей. Вася увидел в окно Петю и захотел пригласить его сыграть партию. Для того, чтобы Петя услышал Васю, Васе необходимо высунуть голову в форточку и позвать Петю. Форточка прямоугольная размером a на b см. Голова Васи круглая диаметром d см. Напишите программу, которая определит, сможет ли Вася позвать Петю, высунув голову в форточку. Учитывайте, что для прохождения головы в форточку необходим зазор в 1 см с каждой стороны (по ширине и длине форточки).

Входные данные
Программа получает на вход три натуральных числа, a, b и d, каждое в отдельной строке. Каждое число не превышает 100.

Выходные данные
Выведите YES, если Вася сможет позвать Петю, в противном случае выведите NO.
 
 
Примеры
№ Входные данные Выходные данные
1 3
2
1
YES
2 3
2
2
NO
Система рейтинга шахматистов ФИДЕ приближенно указывает на квалификацию игроков. Так, набрав определенный рейтинг, мужчины могут претендовать на следующие шахматные звания:
  • 2000 – 2199 – кандидат в мастера (CM)
  • 2200 – 2399 – мастер ФИДЕ (FM)
  • 2400 – 2499 – международный мастер (IM)
  • 2500 и выше – международный гроссмейстер (GM)

После очередного турнира у Шахматист достиг рейтинга равного  N пунктов. Выведите звание, на которое он может претендовать или выведите NO, если набранный рейтинг не соответствует никакому званию. 

Входные данные
Программа получает на вход число N (0 < N < 3000).

Выходные данные
Выведите звание, которому соответсвует набранный рейтинг (CM, FM, IM или GM), если рейтинг не соответсвует никакому званию, то выведите NO.
 
 
Примеры
№ Входные данные Выходные данные
1 1900 NO
2 2450 IM
Вы дали строку, содержащая некоторый текст. Вас просят определить наиболее часто встречающееся слово в данной строке. При этом запрещается считать слова, которые являются запрещенными. 
Гарантируется, что есть хотя бы одно слово, которое не запрещено, и что ответ уникален.

Входные данные
Первая строка содержит исходный текст. Вторая строка содержит одно число - количество запрещенных слов. Треться строка содержит список запрещенных слов, разделенных одним пробелом.
 

Ограничения

  • 1 <= длина текста <= 1000
  • текст состоит из английских букв, разделителем слов является знак пробела (' '), и/или один из следующих символов: "!?',;.".
  • 0 <= количество запрещенных слов <= 100
  • 1 <= длина каждого запрещенного слова <= 10
  • запрещенное слово состоит только из английских букв, записанных в нижнем регистре.

Выходные данные
 Выведите в нижнем регистре наиболее часто встречаемое слово.
 
 
Примеры
№ Входные данные Выходные данные
1
Alpha Beta alpha Z z, b.
1
alpha
z
2
a.
0
a
✓ 47✗ 208500лёгкаяВойти и решать
Дана строка s. Отсортируйте символы данной строки в порядке убывания частоты встречаемости. Частота встречаемости символа - это количество раз, которое данный символ встречается в строке.

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

Входные данные
Программа получает на вход

Ограничения
1 <= s.length <= 5 * 105 (s.length - длина строки s)
s содержит большие и маленькие английские буквы и цифры.


Выходные данные
Выведите отсортированную строку.
 
 
Примеры
№ Входные данные Выходные данные
1
tree
eert
2
cccaaa
aaaccc
3
Aabb
bbAa
Символ называется уникальным, если он встречается в строке один раз. Первый уникальный символ - это уникальный символ с наименьшим индексом.
Дана строка s. Найдите первый уникальный символ в данной строке. Выведите его индекс. Если в строке нет уникальных символов, выведите -1.

Входные данные
Программа получает на вход последовательность непробельных символов s. 

Ограничения
'a' <= s[i] <= 'z'
0 <= i <= 255

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
№ Входные данные Выходные данные
1
silvertests
1
2
sstt
-1

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


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

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

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

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

Примеры
№ Входные данные Выходные данные
1
5 7
13 5 1 8 4 14 5 
5 13 10 9 3 7 7 
3 3 9 6 3 7 5 
10 8 11 2 1 1 13 
1 12 13 15 9 11 4 
1 1 1 1 2 3 3 
3 3 4 4 5 5 5 
5 6 7 7 7 8 8 
9 9 9 10 10 11 11 
12 13 13 13 13 14 15 

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

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

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

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

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

Примеры
№ Входные данные Выходные данные
1
5
12 4 8 13 13 
1 12 1 4 15 
2 3 5 2 3 
6 5 13 12 14 
14 9 15 4 12 
12 4 8 13 14 
1 12 1 13 15 
2 3 5 2 3 
6 5 13 12 14 
4 9 15 4 12
 

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

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

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

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

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

Примеры
№ Входные данные Выходные данные
1
5
1 11 11 5 10 
2 9 2 10 2 
12 9 10 9 15 
6 15 14 1 11 
11 12 4 9 3 
1 11 11 5 10 
2 1 2 10 2 
12 9 3 9 15 
6 15 14 9 11 
11 12 4 9 10
 
Алиса со своим отцом профессором Селезневым записывают на листочке числа. Алиса записала n чисел, профессор Селезнев - m чисел. Алиса и профессор будут рады, если они записали одни и те же числа (без учета кратности). Помогите им определить это, так как им необходимо срочно улетать в очередное космическое путешествие. 
 
Входные данные
В первой строке содержится число n  (1 <= n <= 100000) - количество чисел, записанных Алисой. Во второй строке идет n целых чисел, не превосходящих по модулю 109 – числа Алисы. Третья строка содержит целое число m - количество чисел, записанных профессором Селезневым (1 <= m <= 100000) . В четвертой строке идет m целых чисел, не превосходящих по модулю 109 – числа профессора Селезнева.
 
Выходные данные
Выведите YES, если профессор и Алиса записали одни и те же числа, и слово NO в противном случае.
 
 
Примеры
№ Входные данные Выходные данные
1 3
2 0 7
4
2 0 0 7
YES
Дан двумерный массив целых чисел, items1 и items2, представляющие собой два множества элементов. Каждый из данных массивов обладает следующими свойствами:
  • items[i] = [valuei, weighti], где valuei обозначает значение, а weighti обозначает вес  iго элемента;
  • значение каждого элемента уникально.

Верните двумерный массив ret, где ret[i] = [valuei, weighti], в котором weighti является суммой весов всех значений valuei.
Массив ret должен быть отсортирован по возрастанию по значению value.



Входные данные
Программа получает на вход в первой строке целое число n1 - количество элементов в массиве items1. Далее следуют n1 строк, в каждой из которых записаны два целых числа valuei, weighti - элементы первого массива и их веса.
В следующей строке записано целое число n2 - количество элементов в массиве items2. Далее следуют n2 строк, в каждой из которых записаны два целых числа valuei, weighti - элементы второго массива и их веса.

Ограничения на входные данные:
  • 1 <= n1, n2 <= 1000
  • items1[i].len() == items2[i].len() == 2
  • 1 <= valuei, weighti <= 1000
  • Каждое значение valuei в items1 уникально.
  • Каждое значение valuei в items2 уникально.

Выходные данные
Выведите массив ret в требуемом формате (см. пример)
 
 
Примеры
№ Входные данные Выходные данные
1
3
1 1
4 5
3 8
2
3 1
1 5
[[1, 6], [3, 9], [4, 5]]
2
3
1 1
3 2
2 3
3
2 1
3 2
1 3
[[1, 4], [2, 4], [3, 4]]
✓ 37✗ 27700средняяВойти и решать
Дан двумерный массив A размерностью NxM. Напишите программу, которая добавляет к элементам каждой строки такой новый элемент, чтобы сумма положительных элементов строки стала бы равна модулю суммы отрицательных элементов строки.

Входные данные
В первой строке входных данных записаны через один пробел два натуральных числа N и M ( 0 < N, M <= 25). Далее идут N строк по M положительных целых чисел в каждой - элементы матрицы A (каждый элемент матрицы не превышает 105).

Выходные данные
Выведите результирующий массив A размерностью Nx(M+1) на экран. Все элементы строки должны быть разделены одним пробелом.
 
 
Примеры
№ Входные данные Выходные данные
1 4 5
-10 2 10 -3 4
-5 3 6 -8 8
12 -10 3 -8 4
1 2 3 -1 -2
-10 2 10 -3 4 -3
-5 3 6 -8 8 -4
12 -10 3 -8 4 -1
1 2 3 -1 -2 -3

Миша занимается параллельным программированием. Сегодня он пишет программу для исполнителя "Квадратик". Исполнитель "Квадратик" живет на клетчатом поле размера  N х M, размер одной клетки 1х1. Перемещаясь он закрашивает клетку, на которой побывал. Клетку, на которой он начал движение и на которой остановился он также закрашивает. 
Миша установил на поле K "Квадратиков". Каждый "Квадратик" будет двигаться в указанном Мишей направлении и останавливаться дойдя до конца поля. После окончании движения всех "Квадратиков", Миша хочет узнать сколько клеток поля получились закрашенными. Так как задача подсчета не относится к параллельному программированию, а размер поля может быть очень большим, Миша попросил вас написать программу для подсчета таких клеток.
 

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

Программа получает на вход несколько строк. Первая строка содержит целые числа M и N - размеры поля исполнителя "Квадратик" (1 <= M, N <= 106). Во второй строке записано число K - количество "Квадратиков" на поле (0 <= K <= 103). Далее идут K строк, каждая из которых описывает положение определенного "Квадратика" и направление, в котором он будет перемещаться. Формат каждой из таких строк: два целых числа, записанных через один пробел и один символ  {N, E, S, W} - начальные координаты и направление движения соответствующего "Квадратика". Символ отделен от чисел ровно одним пробелом. 
Символами обозначены следующие направления движения: N - вверх, S - вниз, W - влево, Е - вправо.


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

Выведите количество закрашенных клеток поля, после окончания движения всех "Квадратиков".


Пояснения
Поле исполнителя и расположение "Квадратиков" для первого примера, показаны на рисунке ниже. Стрелочкой обозначено направление движения соответствующего "Квадратика".

 
Примеры
№ Входные данные Выходные данные
1
8 5
4
4 4 S
6 2 W
6 3 N
6 4 S
13

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

Морской бой представляет из себя игру на клетчатом поле размером 10 x 10 клеток. Максим успел прислать вам поле прошедшей игры. На поле отмечены клетки, в которые Максим уже стрелял. На поле можно размещать корабли любого размера, но обязательное условие, чтобы корабль был прямоугольным с шириной, равной 1. Располагать корабль разрешается либо горизонтально либо вертикально.


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

На вход программа получает 10 строк по 10 чисел в каждой, числа разделены пробелами. Число 1 означает, что в соответствующую клетку стреляли, число 0 – что в клетку не стреляли.
(Гарантируется, что на поле есть хотя бы одна небитая клетка.)


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

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

Примеры
№ Входные данные Выходные данные
1
0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 1 0 0
0 0 0 1 0 0 1 0 0 0
0 0 0 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 0 0
0 0 0 1 0 0 1 0 0 0
0 0 1 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0
10

Громила Ральф вот уже 30 лет живёт в игровом автомате, и вы его можете увидеть на экране того самого автомата. 
Сегодня Ральф гуляет по экрану, на котором отображается прямоугольное изображение, разбитое на N x N клеток. В каждой клетке находится тарелка с его любимыми блинчиками (на всех тарелках разное количество блинчиков). Ральф начинает перемещаться с левой нижней клетки прямоугольника. Съев все блинчики в текущей клетке, он перемещается на одну клетку вправо или на одну клетку вверх, всегда выбирая ту из клеток, где больше блинчиков в тарелке (за пределами прямоугольника тарелок с блинчиками нет). В конце концов Ральф приходит в правую верхнюю клетку. Вам же предстоит определить, сколко всего блинчиков съел Ральф пока путешествовал по экрану. Блинчики в начальной и конечной клетках Ральф тоже съел с большим удовольствием.


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

Программа получает на вход в первой строке целое число N – размер изображения (2 <= N <= 10). В следующих N строках задаются через пробел числа, обозначающие количество блинчиков на тарелках, начиная с верхнего ряда и заканчивая нижним. Все числа – различные, натуральные, не превосходящие 100.


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

Выведите одно число - количество блинчиков, которое съест Ральф, добравшись до правой верхней клетки.

 

Примеры
№ Входные данные Выходные данные
1
2
37 82
23 52
157
Алиса часто играет в шахматы. Причем так как она любит путешествовать по другим галактикам, она знает много разновидностей этой древней игры.  Иногда она просто решает головоломки, созданные на шахматной доске.  Шахматная доска Алисы может иметь самые разные размеры, не только 8×8.
Сейчас Алиса решает шахматную головоломку, суть которой заключается в следующем. На одно из полей доски размером m×n записывается некоторое положительное целое число и затем на него ставится ферзь. После этого ферзь делает k ходов. Ходит ферзь по стандартным шахматным правилам. Ферзь не может ходить на поля, на которых уже был. Также, перед там как выполнить ход, на выбранном поле пишется целое число, причем такое, что оно больше всех других чисел, уже записанных на доске.
Решение головоломки заключается в том, чтобы восстановить маршрут ферзя по числам, записанным на доске. Возможно записанные числа не дают решения. 
Для решения этой головоломки Алиса написала программу, которая может быстро ее решать при больших значениях m, n и k. 
Напишите и вы такую программу. 

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

Входные данные
В первой строке вводятся числа m, n и k ( 1< = m, n <= 300, 0 <= k <  mn). Следующие m строк содержат по k целых чисел и описывают поля доски (пустому полю соответствует число 0, а полю, на котором записано число – это число). Все числа, записанные на доске, положительные, целые и не превышают 109.

Выходные данные
Если головоломка составлена с ошибкой и  записанные на ней числа не дают решения, то вывелите «Wrong Board».
В противном случае выведите m строк по n чисел – для каждого поля выведите номер хода, перед которым ферзь побывал на этом поле, а для последнего поля, на котором он оказался – число k + 1. Для полей, на которые ферзь не попадал, выведите число 0.
 
Примеры
№ Входные данные Выходные данные
1
4 4 7
10 20 0 100
30 0 0 40
0 0 0 0
45 42 0 70
1 2 0 8 
3 0 0 4 
0 0 0 0 
6 5 0 7 
2
2 4 4
10 20 30 40
0 50 0 0
Wrong Board
3
2 2 2
1 2
4 3
Wrong Board

Учащиеся театрального кружка школы любят посещать театр. В очередной раз они пошли в театр, в котором n рядов по m мест в каждом. Руководитель кружка пришла за билетами и хочет купить билеты всем учащимся в одном ряду на соседние места. 
По имеющейся информации о проданных билетах на спектакль определите, сможет ли руководитель купить билеты всем учащимся и себе в одном ряду. 
Информация о проданных билетах записана в двумерный массив (единицы означают, что на данное место билет продан, ноль - что место свободно). Руководителю кружка вместе с детьми необходимо k билетов.


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

В первой строке входных данных находятся числа n, m, k <= 100. В следующих n строках входных данных расположены по m чисел (0 и 1), разделенных пробелами.


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

Выведите YES или NO в зависимости от ответа на вопрос задачи.

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

На заключительный этап МОШ по информатике в 2023 году пришло N участников. Так получилось, что у каждого ребенка на каком либо из предметов одежды было записано одно число. При регистрации, один из организаторов решил записать все эти числа. Позже выяснилось, что каким-то чудесным образом, все участники зарегистрировались в порядке неубывания этих чисел на одежде.  

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


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

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


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

Выведите M чисел, каждое в отдельной строке. Для каждого заданного в четвертой строке числа  выведите количество участников с таким числом на одежде.

Яркости пикселей рисунка закодированы числами от 0 до 255 в виде матрицы. Преобразовать рисунок в черно-белый по следующему алгоритму:

  1. вычислить среднюю яркость пикселей по всему рисунку
  2. все пиксели, яркость которых меньше средней, сделать черными (записать код 0), а остальные -– белыми (код 255)


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

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

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

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

 
Примеры
№ Входные данные Выходные данные
1
4 4
12 14 67 45
32 87 45 63
69 45 14 11
40 12 35 15
37.8750
0 0 255 255
0 255 255 255
255 255 0 0
255 0 0 0
Поделиться
Класснуть