#ABC207C. [ABC207C] 区间(Many Segments)

[ABC207C] 区间(Many Segments)

题目描述

给定 NN 个区间,编号从 11 到 NN。其中第 ii 个区间由一个标识符 tit_i 及两个端点 lil_i, rir_i 组成。

  • 若 ti=1t_i = 1,则表示闭区间 [li,ri][l_i,r_i]
  • 若 ti=2t_i = 2,则表示左闭右开区间 [li,ri)[l_i,r_i)
  • 若 ti=3t_i = 3,则表示左开右闭区间 (li,ri](l_i,r_i]
  • 若 ti=4t_i = 4,则表示开区间 (li,ri)(l_i,r_i)

请计算有多少对整数 (i,j)(i,j) 满足 1≤i<j≤N1\le i < j \le N,使得区间 ii 和区间 jj 相交。

[X,Y],[X,Y),(X,Y],(X,Y)[X,Y],[X,Y),(X,Y],(X,Y) 是什么?

  • 闭区间 [X,Y][X,Y] 是由所有满足 X≤x≤YX\le x\le Y 的实数 xx 组成的区间。
  • 半开区间 [X,Y)[X,Y) 是由所有满足 X≤x<YX\le x< Y 的实数 xx 组成的区间。
  • 半开区间 (X,Y](X,Y] 是由所有满足 X<x≤YX< x\le Y 的实数 xx 组成的区间。
  • 开区间 (X,Y)(X,Y) 是由所有满足 X<x<YX< x< Y 的实数 xx 组成的区间。

简单来说,方括号 [][] 表示包含端点,圆括号 ()() 表示不包含端点。

输入格式

输入从标准输入中给出,格式如下:

N N

t1 t_1 l1 l_1 r1 r_1

t2 t_2 l2 l_2 r2 r_2

⋮ \vdots

tN t_N lN l_N rN r_N

输出格式

输出区间 ii 和区间 jj 相交的整数对 (i,j)(i,j)的数量。

样例

3
1 1 2
2 2 3
3 2 4
2
19
4 210068409 221208102
4 16698200 910945203
4 76268400 259148323
4 370943597 566244098
1 428897569 509621647
4 250946752 823720939
1 642505376 868415584
2 619091266 868230936
2 306543999 654038915
4 486033777 715789416
1 527225177 583184546
2 885292456 900938599
3 264004185 486613484
2 345310564 818091848
1 152544274 521564293
4 13819154 555218434
3 507364086 545932412
4 797872271 935850549
2 415488246 685203817
102

说明/提示

样例 1 解释

根据题目描述,区间 11 是 [1,2][1,2],区间 22 是[2,3)[2,3),区间 33 是 (2,4](2,4]。

有两对整数 (i,j)(i,j) 使得区间 ii 和区间 jj 相交:(1,2)(1,2) 和 (2,3)(2,3)。对于第一对,交集是 [2,2][2,2],对于第二对,交集是 (2,3)(2,3)。

数据范围

  • 2 ≤ N ≤ 2000 2\ \leq\ N\ \leq\ 2000
  • 1 ≤ ti ≤ 4 1\ \leq\ t_i\ \leq\ 4
  • 1 ≤ li < ri ≤ 109 1\ \leq\ l_i\ \lt\ r_i\ \leq\ 10^9
  • 所有输入值都是整数。