#U1920FG2. Help Yourself

Help Yourself

Bessie 得到了一条一维数轴上的 N 条线段(1≤N≤105^5)。第 i 条线段包含满足 li_i≤x≤ri_i 的所有实数 x。定义一组线段的并为所有被至少一条线段所包含的实数 x 的集合。定义一组线段的复杂度为这组线段的并的连通区域数量。

Bessie 想要求出给定的 N 条线段组成的集合的所有 2N^N 个子集的复杂度之和模 109^9+7 的值。

通常你的任务是帮助 Bessie。然而这次,你就是 Bessie,没人来帮你。请吧!

测试点性质:

  • 测试点 2-3 满足 N≤16。
  • 测试点 4-7 满足 N≤1000。
  • 测试点 8-12 没有额外限制。

输入格式(文件名:help.in):

第一行包含 N。以下 N 行每行包含两个整数 li_i 和 ri_i。保证li<ri,且所有 li_i,ri_i 均为 1…2N 中的不同整数。

输出格式(文件名:help.out):

输出答案模 109^9+7 的值。

输入样例:

3
1 6
2 3
4 5

输出样例:

8

所有非空子集的复杂度如下。

{[1,6]}⟹1,{[2,3]}⟹1,{[4,5]}⟹1

{[1,6],[2,3]}⟹1,{[1,6],[4,5]}⟹1,{[2,3],[4,5]}⟹2,

{[1,6],[2,3],[4,5]}⟹1

答案为 1+1+1+1+1+2+1=8。