#bitflyer2018finalh. [bitflyer2018_final_h]三角形と格子点

[bitflyer2018_final_h]三角形と格子点

问题描述

xyxy 平面上,点 PP 是一个格点,表示点 PP 的横坐标和纵坐标都是整数。

对于三角形 ABCABCxyxy 平面上,定义函数 f(ABC)f(ABC) 表示 ABCABC 内部的格点个数(不包括边界上的格点)。

给定 88 个整数 X1X_1, Y1Y_1, X2X_2, Y2Y_2, X3X_3, Y3Y_3, WW, HH

请求满足下面条件的所有三角形 ABCABCf(ABC)f(ABC) 值之和除以 109+710^9 + 7 的余数:

  • 顶点 AA 的横坐标在 X1X_1X1+WX_1 + W 之间(不包括边界),纵坐标在 Y1Y_1Y1+HY_1 + H 之间(不包括边界)。
  • 顶点 BB 的横坐标在 X2X_2X2+WX_2 + W 之间(不包括边界),纵坐标在 Y2Y_2Y2+HY_2 + H 之间(不包括边界)。
  • 顶点 CC 的横坐标在 X3X_3X3+WX_3 + W 之间(不包括边界),纵坐标在 Y3Y_3Y3+HY_3 + H 之间(不包括边界)。

约束条件

  • 0Xi,Yi10120 \leq X_i, Y_i \leq 10^{12}1i31 \leq i \leq 3
  • 1W,H40,0001 \leq W, H \leq 40,000
  • X1+WX3X_1 + W \leq X_3
  • X3+WX2X_3 + W \leq X_2
  • Y1+HY2Y_1 + H \leq Y_2
  • Y2+HY3Y_2 + H \leq Y_3

输入

输入以以下格式从标准输入中给出。

X1X_1 Y1Y_1 X2X_2 Y2Y_2 X3X_3 Y3Y_3 WW HH

输出

输出答案。

示例 1

输入

0 0
4 1
2 3
2 1

输出

32

根据下图,需要求出 f(AiBjCk)f(A_iB_jC_k) (i,j,k{1,2}i, j, k \in \{1, 2\}) 的和除以 109+710^9 + 7 的余数。

image for sample 1

  • f(A1B1C1)=4f(A_1B_1C_1) = 4
  • f(A1B1C2)=3f(A_1B_1C_2) = 3
  • f(A1B2C1)=6f(A_1B_2C_1) = 6
  • f(A1B2C2)=4f(A_1B_2C_2) = 4
  • f(A2B1C1)=3f(A_2B_1C_1) = 3
  • f(A2B1C2)=3f(A_2B_1C_2) = 3
  • f(A2B2C1)=5f(A_2B_2C_1) = 5
  • f(A2B2C2)=4f(A_2B_2C_2) = 4

因此,答案是这些和除以 109+710^9 + 7 的余数,即 3232

示例 2

输入

1 2
100 50
50 100
10 10

输出

669378679

示例 3

输入

100 100
10000 1000
1000 10000
99 101

输出

69068642

示例 4

输入

0 0
1000000000000 100000000000
100000000000 1000000000000
1 1

输出

24258851

示例 5

输入

83014267509 107013567012
918384543326 586909285896
391608717054 614178832969
40000 40000

输出

569338479