Codeforces Round 547 (Div. 3) |
---|
Закончено |
Эта задача дана в двух редакциях, которые различаются исключительно ограничением на число $$$n$$$.
Дан массив целых чисел $$$a[1], a[2], \dots, a[n].$$$ Назовём его блоком (подмассивом) последовательность подряд идущих элементов $$$a[l], a[l+1], \dots, a[r]$$$ ($$$1 \le l \le r \le n$$$). Таким образом, блок определяется парой индексов его границ $$$(l, r)$$$.
Найдите такой набор блоков $$$(l_1, r_1), (l_2, r_2), \dots, (l_k, r_k)$$$, что:
Напишите программу, которая выводит искомый набор блоков.
Первая строка содержит целое $$$n$$$ ($$$1 \le n \le 1500$$$) — длину заданного массива. Вторая строка содержит последовательность элементов массива — целые числа $$$a[1], a[2], \dots, a[n]$$$ ($$$-10^5 \le a_i \le 10^5$$$).
В первую строку выведите $$$k$$$ ($$$1 \le k \le n$$$). Следующие $$$k$$$ строк должны содержать описания блоков, по одному в строке. В каждую из этих строк выведите пару индексов $$$l_i, r_i$$$ ($$$1 \le l_i \le r_i \le n$$$) — границы $$$i$$$-го блока. Вы можете выводить блоки в любом порядке. Если ответов несколько, выведите любой из них.
7 4 1 2 2 1 5 3
3 7 7 2 3 4 5
11 -5 -4 -3 -2 -1 0 1 2 3 4 5
2 3 4 1 1
4 1 1 1 1
4 4 4 1 1 2 2 3 3
Название |
---|