Codeforces Round 666 (Div. 1) |
---|
Закончено |
Shrimpy Duc это пухлый и жадный мальчик, который всегда голоден. После бесчисленных попыток найти еду, чтобы утолить его нескончаемый голод, Shrimpy Duc нашел конфеты M&M, лежащие на поле $$$L \times L$$$. Есть $$$n$$$ конфеток M&M на этом поле, $$$i$$$-я из них находится в точке $$$(x_i + 0.5, y_i + 0.5),$$$ и имеет цвет $$$c_i$$$, один из возможных $$$k$$$ цветов (размерами M&Ms можно пренебречь).
Shrimpy Duc хочет украсть прямоугольник M&Ms, а именно, он хочет выбрать прямоугольник с целочисленными координатами внутри поля, и украсть все M&Ms в нем. Ему необязательно красть все конфеты, однако, он хочет украсть хотя бы одну конфету каждого цвета.
Иначе говоря, он хочет посчитать количество таких прямоугольников, в которых левая нижняя вершина находится в $$$(X_1, Y_1)$$$, правая верхняя в $$$(X_2, Y_2)$$$, они являются точками с целочисленными координатами, удовлетворяющие условиям $$$0 \le X_1 < X_2 \le L$$$ и $$$0 \le Y_1 < Y_2 \le L$$$, что для каждого $$$1 \le c \le k$$$ существует хотя бы одна M&M с цветом $$$c$$$, которая лежит в этом прямоугольнике.
Сколько существует таких прямоугольников? Это число может быть большим, так что вам достаточно найти его по модулю $$$10^9 + 7$$$.
В первой строке записаны три целых числа $$$n, k, L$$$ $$$(1 \leq k \leq n \leq 2 \cdot 10^3, 1 \leq L \leq 10^9 )$$$ — количество M&Ms, количество цветов, и размер поля, соответственно.
Каждая из следующих $$$n$$$ строк описывает M&Ms. В каждой строке записано три целых числа $$$x_i, y_i, c_i$$$ $$$(0 \leq x_i, y_i < L, 1 \le c_i \le k)$$$ — координаты и цвет $$$i$$$-й M&M, соответственно.
Разные M&Ms имеют разные координаты ($$$x_i \ne x_j$$$ или $$$y_i \ne y_j$$$ для всех $$$i \ne j$$$), и для каждого $$$1 \le c \le k$$$ есть хотя бы одна M&M с цветом $$$c$$$.
Выведите одно целое число — количество прямоугольников, удовлетворяющих условиям Shrimpy Duc, по модулю $$$10^9 + 7$$$.
4 2 4 3 2 2 3 1 1 1 1 1 1 2 1
20
5 3 10 6 5 3 5 3 1 7 9 1 2 3 2 5 0 2
300
10 4 10 5 4 4 0 0 3 6 0 1 3 9 2 8 7 1 8 1 3 2 1 3 6 3 2 3 5 3 4 3 4
226
Поле для первого примера:
Название |
---|