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


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

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

Количество чисел Каталана

Комбинаторные структуры

Вывести N-ное число Каталана


Входные данные
Первая строка входных данных содержит одно число N (\(1 <= N <= 20\)).
 
Выходные данные
Выведите одно число - N-ное число Каталана
 

 

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

Разность

Комбинаторные структуры

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

Входные данные
На вход подаётся одно число - N (\(1 <= N <= 10\))
 
Выходные данные
Выведите одно число - искомую разность
 

 

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

 

Набор для торта

Комбинаторные структуры Задача на реализацию

Ушан с планеты Блук открыл пекарню. В его пекарне продается N видов тортов. Каждый вид торта имеет три параметра: «красота», «вкус» и «популярность». I-й вид торта имеет красоту xi, вкус yi и популярность zi. Эти значения могут быть нулевыми или отрицательными.
Громозека решил, что купит М кусочков торта. Он выбирает набор следующим образом:
- Нельзя использовать два и более куска одного и того же вида торта.
- При указанном выше условии выбирается набор тортов, который максимизирует (абсолютное значение общей красоты) + (абсолютное значение общего вкуса) + (абсолютное значение общей популярности).
Найдите максимально возможное значение (абсолютное значение общей красоты) + (абсолютное значение общего вкуса) + (абсолютное значение общей популярности) для набора тортов, который выберет Громозека.

Входные данные
В первой строке через пробел записаны два целых числа N (1<=N<=1000) и M (0<=M<=N). В следующих N строках записано по  три целых числа xi, yi и zi (-109<=xi, yi, zi <=109, 1<=i<=N).

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

 

Примеры
Входные данные Выходные данные Пояснение
1 5 3
3 1 4
1 5 9
2 6 5
3 5 8
9 7 9
56 Подумайте о 2-м, 4-м и 5-м видах тортов. Общая красота, вкус и популярность будут следующими:
Красота: 1 + 3 + 9 = 13
Вкус: 5 + 5 + 7 = 17
Популярность: 9 + 8 + 9 = 26
Значение (абсолютное значение общей красоты) + (абсолютное значение общей вкусовой привлекательности) + (абсолютное значение общей популярности) здесь равно 13 + 17 + 26 = 56. Это максимальное значение.
2 5 3
1 -2 3
-4 5 -6
7 -8 -9
-10 11 -12
13 -14 15
54 Подумайте о том, чтобы иметь 1-й, 3-й и 5-й виды тортов. Общая красота, вкус и популярность будут следующими:

Красота: 1 + 7 + 13 = 21
Вкус: (−2) + (- 8) + (- 14) = - 24
Популярность: 3 + (- 9) + 15 = 9
Значение (абсолютное значение общей красоты) + (абсолютное значение общей вкусовой привлекательности) + (абсолютное значение общей популярности) здесь равно 21 + 24 + 9 = 54. Это максимальное значение.
3 10 5
10 -80 21
23 8 38
-94 28 11
-26 -2 18
-69 72 79
-26 -86 -54
-72 -50 59
21 65 -32
40 -94 87
-62 18 82
638 Если у нас есть 3-й, 4-й, 5-й, 7-й и 10-й виды тортов, общая красота, вкус и популярность будут -323, 66 и 249 соответственно.
Значение (абсолютное значение общей красоты) + (абсолютное значение общей вкусовой привлекательности) + (абсолютное значение общей популярности) здесь равно 323 + 66 + 249 = 638. Это максимальное значение.
4 3 2
2000000000 -9000000000 4000000000
7000000000 -5000000000 3000000000
6000000000 -1000000000 8000000000
30000000000 Значения красоты, вкуса и популярности тортов, а также значение, которое будет напечатано, могут не соответствовать 32-битным целым числам.

 

Цифровые узоры

Комбинаторные структуры

Аня занимается рукоделием. Сегодня она решила связать платок из полупрозрачных ниток. Каждая нитка характеризуется единственным целым числом — коэффициентом прозрачности.

Платок делается по следующей схеме: выбираются горизонтальные нитки с коэффициентами прозрачности \(a_1, a_2, \ldots, a_n\) и вертикальные с коэффициентами прозрачности \(b_1, b_2, \ldots, b_m\). Затем они переплетаются между собой, как показано на картинке снизу, и образуют кусок ткани размера \(n \times m\), состоящий ровно из \(nm\) узлов:

image
Пример куска ткани при \(n = m = 4\).

После того, как сплетение затянется и не будет видно зазоров между нитками, каждый узел, образованный горизонтальной ниткой с номером \(i\) и вертикальной ниткой с номером \(j\), превратится в клетку, которую мы будем обозначать как \((i, j)\). Клетка \((i, j)\) будет иметь коэффициент прозрачности \(a_i + b_j\).

\(^{\dagger}\)Подквадратом куска ткани называется множество всех его клеток \((i, j)\), таких что \(x_0 \le i \le x_0 + d\) и \(y_0 \le j \le y_0 + d\) для некоторых целых чисел \(x_0\), \(y_0\) и \(d\) (\(1 \le x_0 \le n - d\), \(1 \le y_0 \le m - d\), \(d \ge 0\)).

Интересностью полученного платка будем называть количество его подквадратов\(^{\dagger}\), в которых нет пары соседних по горизонтали или по вертикали клеток с одинаковыми коэффициентами прозрачности.

Аня ещё не решила, из каких ниток плести платок, поэтому вам будут даны также \(q\) запросов изменения коэффициентов прозрачности ниток на некотором отрезке, после каждого из которых надо вывести интересность полученного платка.

Формат входных данных
Первая строка содержит три целых числа \(n\), \(m\) и \(q\) (\(1 \le n, m \le 300\,000\), \(0 \le q \le 300\,000\)) — количество горизонтальных ниток, количество вертикальных ниток и количество запросов изменения.

Вторая строка содержит \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) (\(-10^9 \le a_i \le 10^9\)) — коэффициенты прозрачности для горизонтальных ниток, нитки пронумерованы сверху-вниз.

Третья строка содержит \(m\) целых чисел \(b_1, b_2, \ldots, b_m\) (\(-10^9 \le b_i \le 10^9\)) — коэффициенты прозрачности для вертикальных ниток, нитки пронумерованы слева-направо.

В последующих \(q\) строках указаны запросы изменения. Каждый из запросов описывается четверкой целых чисел \(t\), \(l\), \(r\) и \(x\) (\(1 \le t \le 2\), \(l \le r\), \(-10^9 \le x \le 10^9\)). В зависимости от параметра \(t\) в запросе требуется сделать следующее:

  • \(t=1\). Коэффициенты прозрачности для горизонтальных ниток на отрезке \([l, r]\) увеличиваются на \(x\) (иными словами, для всех целых \(l \le i \le r\) значение \(a_i\) увеличивается на \(x\));

  • \(t=2\). Коэффициенты прозрачности для вертикальных ниток на отрезке \([l, r]\) увеличиваются на \(x\) (иными словами, для всех целых \(l \le i \le r\) значение \(b_i\) увеличивается на \(x\)).

Формат выходных данных
Выведите \((q+1)\) строку. В \((i + 1)\)-й строке (\(0 \le i \le q\)) выведите одно целое число — интересность платка после применения первых \(i\) запросов.


Примечание
В первом примере коэффициенты прозрачности клеток в получившемся платке равны:

2 3 3 4
2 3 3 4
3 4 4 5
4 5 5 6

Тогда есть следующие подквадраты, не содержащие двух соседних по вертикали или по горизонтали клеток с одинаковым коэффициентом прозрачности:

  • Каждая из \(16\) клеток по отдельности;

  • Подквадрат с левым верхним углом в клетке \((3, 1)\) и правим нижним углом в клетке \((4, 2)\);

  • Подквадрат с левым верхним углом в клетке \((2, 3)\) и правим нижним углом в клетке \((3, 4)\);

  • Подквадрат с левым верхним углом в клетке \((2, 1)\) и правым нижним углом в клетке \((3, 2)\);

  • Подквадрат с левым верхним углом в клетке \((3, 3)\) и правим нижним углом в клетке \((4, 4)\).

Во втором примере после первого запроса коэффициенты прозрачности горизонтальных ниток равны \([1, 2, 2]\). После второго запроса коэффициенты прозрачности вертикальных ниток равны \([2, -4, 2]\).