Competitions

# Sprinklers

Farmer John has a large field, and he is thinking of planting sweet corn in some part of it. After surveying his field, FJ found that it forms an (n1) * (n1) square. The southwest corner is at coordinates (0, 0), and the northeast corner is at (n1, n1).

At some integer coordinates there are double-headed sprinklers, each one sprinkling both water and fertilizer. A double-heading sprinkler at coordinates (i, j) sprinkles water on the part of the field north and east of it, and sprinkles fertilizer on the part of the field south and west of it. Formally, it waters all real coordinates (x, y) for which nxi and nyj, and it fertilizes all real coordinates (x, y) for which 0xi and 0yj.

Farmer John wants to plant sweet corn in some axis-aligned rectangle in his field with integer-valued corner coordinates. However, for the sweet corn to grow, all points in the rectangle must be both watered and fertilized by the double-headed sprinklers. And of course the rectangle must have positive area, or Farmer John wouldn't be able to grow any corn in it!

Help Farmer John determine the number of rectangles of positive area in which he could grow sweet corn. Since this number may be large, output the remainder of this number modulo 109 + 7.

#### Input

The first line consists of a single integer n (1n105), the size of the field. The next n lines each contain two space-separated integers. If these integers are i and j, where 0i, jn1, they denote a sprinkler located at (i, j).

It is guaranteed that there is exactly one sprinkler in each column and exactly one sprinkler in each row. That is, no two sprinklers have the same x-coordinate, and no two sprinklers have the same y-coordinate.

#### Output

Print a single integer: the number of rectangles of positive area which are fully watered and fully fertilized, modulo 109 + 7.

Time limit 1 second
Memory limit 128 MiB
Input example #1
5
0 4
1 1
2 2
3 0
4 3

Output example #1
21

Source 2018 USACO January, Platinum