#4286. 区间(Many Segments )

区间(Many Segments )

题目描述

给出NN个区间,编号从11NN。这些区间定义如下:

  • 如果ti=1t_i=1,区间i是[li,ri][l_i,r_i]
  • 如果ti=2t_i=2,区间i是[li,ri)[l_i,r_i)
  • 如果ti=3t_i=3,区间i是(li,ri](l_i,r_i]
  • 如果ti=4t_i=4,区间i是(li,ri)(l_i,r_i)

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

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

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

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

输入格式

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

NN

t1t_1 l1l_1 r1r_1

t2t_2 l2l_2 r2r_2

\vdots

tNt_N lNl_N rNr_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解释

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

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

数据范围

  • 2N20002 \leq N \leq 2000
  • 1ti41 \leq t_i \leq 4
  • 1li<ri1091 \leq l_i < r_i \leq 10^9
  • 所有输入值都是整数。

来源

  • AtCoder ABC207C