Монокарп тренер команд Берляндского ГУ по программированию. Он решил собрать тренировку для своих команд перед квалификационным этапом.
У Монокарпа есть $$$n$$$ задач, которые еще не решал ни один из его студентов. У $$$i$$$-й задачи есть тема $$$a_i$$$ (целое число от $$$1$$$ до $$$n$$$) и сложность $$$b_i$$$ (целое число от $$$1$$$ до $$$n$$$), причем все задачи попарно различны, то есть нет двух задач, у которых одинаковы и тема, и сложность.
Монокарп решил выбрать из $$$n$$$ задач ровно $$$3$$$ задачи для тренировки, при этом должно выполняться хотя бы одно из двух условий (возможно, оба):
Перед вами стоит задача определить количество способов, которыми Монокарп может выбрать три задачи для тренировки.
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 50000$$$) — количество наборов входных данных.
Первая строка каждого набора содержит одно целое число $$$n$$$ ($$$3 \le n \le 2 \cdot 10^5$$$) — количество задач, которые есть у Монокарпа.
В $$$i$$$-й из следующих $$$n$$$ строк следуют по два целых числа $$$a_i$$$ и $$$b_i$$$ ($$$1 \le a_i, b_i \le n$$$) — тема и сложность $$$i$$$-й задачи.
Гарантируется, что нет двух задач, у которых одинаковы и тема, и сложность.
Сумма $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$.
Выведите количество способов выбрать три задачи для тренировки, которые удовлетворяют описанным в условии требованиям.
2 4 2 4 3 4 2 1 1 3 5 1 5 2 4 3 3 4 2 5 1
3 10
В первом примере можно взять следующие наборы по три задачи:
Таким образом, количество способов равно трем.
Название |
---|