Codeforces Round 206 (Div. 1) |
---|
Закончено |
Вася с Петей используют интересную структуру для хранения данных, пирамиду.
Пирамида состоит из n рядов, в i-том из них содержится i ячеек. Каждый ряд сдвинут относительно предыдущего на половину длины ячейки влево. Ячейки пирамиды пронумерованы от 1 до так, как показано на рисунке ниже.
Пример пирамиды при n = 5:
Эта структура данных умеет выполнять операции двух видов:
Формально: подпирамида с вершиной в i-той ячейке k-того ряда (5 ячейка = вторая ячейка третьего ряда) будет содержать ячейки из рядов от k до n, в (k + p)-том из них — ячейки ряда от i-той до (i + p)-той (0 ≤ p ≤ n - k).
У Васи и Пети было две одинаковые пирамиды. Вася в своей пирамиде изменил некоторые ячейки и теперь хочет передать изменения Пете. Для этого он хочет найти последовательность операций, при помощи которой можно повторить все сделанные им изменения, однако, среди всех возможных последовательностей необходимо выбрать самую короткую (содержащую минимальное количество чисел).
Вам дана пирамида из n рядов, в которой k ячеек были изменены. Найдите последовательность операций, после которой каждая из k измененных ячеек будет также изменена как минимум одной из операций. Среди всех возможных последовательностей выберите содержащую минимальное количество чисел.
В первой строке содержится два целых числа n и k (1 ≤ n, k ≤ 105).
Следующие k строк содержат координаты измененных ячеек ri и ci (1 ≤ ci ≤ ri ≤ n) — ряд и номер ячейки в ряду. Все ячейки различны.
Выведите единственное число — количество чисел в найденной последовательности.
4 5
3 1
3 3
4 1
4 3
4 4
10
7 11
2 2
3 1
4 3
5 1
5 2
5 5
6 4
7 2
7 3
7 4
7 5
26
Одно из возможных решений первого примера состоит из двух операций:
2 4 v4 v7 v8
2 6 v6 v9 v10
На изображении измененные ячейки выделены другим цветом, голубым цветом выделена подпирамида, используемая первой операцией, желтым — второй:
Название |
---|