题目描述
Y 同学正在设计一个 n×n 的关卡。关卡中有 n 个怪物,并且每一行、每一列恰好有一个怪物。为了复用关卡资源,他希望截取一个正方形区域作为小关卡:如果某个 k×k 的连续行列正方形里恰好包含 k 个怪物,就称这个正方形是可复用的。
不同的正方形只要左上角或边长不同,就视为不同。由于每行每列各有一个怪物,把行号按顺序展开后,问题会变成一个排列上的连续值域统计,但直接枚举所有正方形仍然会超时。
请你计算可复用正方形的总数。
输入格式
第一行包含一个整数 n。
接下来 n 行,每行两个整数 ri,ci,表示第 i 个怪物所在的行和列。
输出格式
输出一行一个整数,表示可复用正方形数量。
样例
样例输入 #1
3
1 2
2 3
3 1
样例输出 #1
5
数据范围与约定
对于 100% 的数据,保证 1≤n≤3×105,1≤ri,ci≤n,所有 ri 互不相同,所有 ci 互不相同。
| 测试点编号 |
分值 |
范围 |
特殊性质 |
| 1∼4 |
16 |
n≤300 |
无 |
| 5∼8 |
n≤3×105 |
保证 ci=ri |
| 9∼12 |
18 |
保证 ci=n−ri+1 |
| 13∼16 |
20 |
n≤5000 |
无 |
| 17∼22 |
30 |
n≤3×105 |
特殊性质 A:保证 ci=ri。
特殊性质 B:保证 ci=n−ri+1。