Кодовый замок состоит из \(N\) рычажков, каждый из которых может быть установлен в любое из \(K\) положений, обозначенных натуральными числами от 1 до \(K\). Известно, что для того чтобы открыть замок, нужно, чтобы сумма положений любых трех последовательных рычажков была равна \(K\).
Два рычажка уже установлены в некоторые положения, и их переключать нельзя. Рычажок с номером \(p_1\) установлен в положение \(v_1\), а рычажок \(p_2\) – в положение \(v_2\).
Напишите программу, которая определит, сколькими способами можно установить остальные рычажки, чтобы открыть замок.
Вводятся натуральные числа \(N\), \(K\), \(p_1\), \(v_1\), \(p_2\), \(v_2\). Рычажки пронумерованы числами от 1 до \(N\).
3 ≤ \(N\) ≤ 10000, 3 ≤ \(K\) ≤ 6, \(p_1\)≠\(p_2\), 1 ≤ \(p_1\) ≤ \(N\), 1 ≤ \(p_2\) ≤ \(N\), 1 ≤ \(v_1\) ≤ \(K\), 1 ≤ \(v_2\) ≤ \(K\).
Выведите одно число — количество искомых комбинаций или 0, если, соблюдая все условия, замок открыть невозможно.
Напишите программу, которая посчитает количество смайликов в заданном тексте.
Смайликом будем считать последовательность символов, удовлетворяющую условиям:
Например, нижеприведенные последовательности являются смайликами:
:)
;---------[[[[[[[[
в то время как эти последовательности смайликами не являются (хотя некоторые из них содержат смайлики):
:-)]
;--
-)
::-(
:-()
В этой задаче надо будет посчитать количество смайликов, содержащихся в данном тексте.
Формат входных данных
Вводится одна строка текста, которая может содержать маленькие латинские буквы, пробелы, символы, которые могут встречаться в смайликах. Длина строки не превышает 200 символов.
Формат выходных данных
Выведите одно число — количество смайликов, которые встречаются в тексте.
:);------[[[[[]
2
В классе учатся N человек. Классный руководитель получил указание разбить их на R бригад по С человек в каждой и направить на субботник (N = R∙C).
Все бригады на субботнике будут заниматься переноской бревен. Каждое бревно одновременно несут все члены одной бригады. При этом бревно нести тем удобнее, чем менее различается рост членов этой бригады.
Числом неудобства бригады будем называть разность между ростом самого высокого и ростом самого низкого членов этой бригады (если в бригаде только один человек, то эта разница равна 0). Классный руководитель решил сформировать бригады так, чтобы максимальное из чисел неудобства сформированных бригад было минимально. Помогите ему в этом!
Рассмотрим следующий пример. Пусть в классе 8 человек, рост которых в сантиметрах равен 170, 205, 225, 190, 260, 130, 225, 160, и необходимо сформировать две бригады по четыре человека в каждой. Тогда одним из вариантов является такой:
1 бригада: люди с ростом 225, 205, 225, 260
2 бригада: люди с ростом 160, 190, 170, 130
При этом максимальное число неудобства будет во второй бригаде, оно будет равно 60, и это наилучший возможный результат.
Формат входных данных:
Сначала вводятся натуральные числа R и C количество бригад и количество человек в каждой бригаде (1 ≤ R∙C ≤ 1000). Далее вводятся N = R∙C целых чисел по одному в строке — рост каждого из N учеников. Рост ученика — натуральное число, не превышающее 1 000 000 000.
Формат выходных данных:
Выведите одно число — наименьше возможное значение максимального числа неудобства сформированных бригад.
Пример
Входные данные | Выходные данные |
2 4 170 205 225 190 260 130 225 160 | 60 |
Слова в языке Мумба-Юмба могут состоять только из букв a, b, c, и при этом:
Все слова, удовлетворяющие вышеописанным правилам, входят в язык Мумба-Юмба.
Напишите программу, которая по данному слову определит, принадлежит ли оно этому языку.
Формат входных данных
Вводится одно слово, состоящее только из строчных букв a, b, c, длины не более 100.
Формат выходных данных
Если слово входит в язык Мумба-Юмба, выведите YES, в противном случае выведите NO.
abca
YES
Васин жесткий диск состоит из M секторов. Вася последовательно устанавливал на него различные операционные системы следующим методом: он создавал новый раздел диска из последовательных секторов, начиная с сектора номер ai и до сектора bi включительно, и устанавливал на него очередную систему. При этом, если очередной раздел хотя бы по одному сектору пересекается с каким-то ранее созданным разделом, то ранее созданный раздел «затирается», и операционная система, которая на него была установлена, больше не может быть загружена.
Напишите программу, которая по информации о том, какие разделы на диске создавал Вася, определит, сколько в итоге работоспособных операционных систем установлено и работает в настоящий момент на Васином компьютере.
Формат входных данных
Сначала вводятся натуральное число M — количество секторов на жестком диске (1 ≤ M ≤ 109) и целое число N — количество разделов, которое последовательно создавал Вася (0 ≤ N ≤ 1000).
Далее идут N пар чисел ai и bi, задающих номера начального и конечного секторов раздела
(1 ≤ ai ≤ bi ≤ M).
Формат выходных данных
Выведите одно число — количество работающих операционных систем на Васином компьютере.
Input:
10
3
1 3
4 7
3 4
Output:
1