[SDOI2009] 虔诚的墓主人
题目描述
小W是一片新造公墓的管理人。公墓可以看成一块 N×M 的矩形,矩形的每个格点,要么种着一棵常青树,要么是一块还没有归属的墓地。
当地的居民都是非常虔诚的基督徒,他们愿意提前为自己找一块合适墓地。为了体现自己对主的真诚,他们希望自己的墓地拥有着较高的虔诚度。
一块墓地的虔诚度是指以这块墓地为中心的十字架的数目。一个十字架可以看成中间是墓地,墓地的正上、正下、正左、正右都有恰好 k 棵常青树。
形式化地,对于一个坐标为 (x,y) 的墓地,以其为中心的十字架个数是这样的长度为 4k 的二元组序列 [(x1,1,y1,1),(x1,2,y1,2),⋯,(x1,k,y1,k),(x2,1,y2,1),(x2,2,y2,2),⋯,(x2,k,y2,k),(x3,1,y3,1),(x3,2,y3,2),⋯,(x3,k,y3,k),(x4,1,y4,1),(x4,2,y4,2),⋯,(x4,k,y4,k)] 的方案数:
- 每一个二元组对应着一棵常青树的坐标;
- x1,1<x1,2<⋯<x1,k<x 且 y1,1=y1,2=⋯=y1,k=y;
- x<x2,1<x2,2<⋯<x2,k 且 y2,1=y2,2=⋯=y2,k=y;
- y3,1<y3,2<⋯<y3,k<y 且 x3,1=x3,2=⋯=x3,k=x;
- y<y4,1<y4,2<⋯<y4,k 且 x4,1=x4,2=⋯=x4,k=x。
小W希望知道他所管理的这片公墓中所有墓地的虔诚度总和是多少。
输入格式
第一行包含两个用空格分隔的正整数 N 和 M,表示公墓的宽和长,因此这个矩形公墓共有 (N+1)×(M+1) 个格点,左下角的坐标为 (0,0),右上角的坐标为 (N,M)。
第二行包含一个正整数 W,表示公墓中常青树的个数。
第三行起共 W 行,每行包含两个用空格分隔的非负整数 xi 和 yi,表示一棵常青树的坐标。输入保证没有两棵常青树拥有相同的坐标。
最后一行包含一个正整数 k,意义如题目所示。
输出格式
输出仅包含一个非负整数,表示这片公墓中所有墓地的虔诚度总和。为了方便起见,答案对 2,147,483,648 取模。
样例 #1
样例输入 #1
5 6
13
0 2
0 3
1 2
1 3
2 0
2 1
2 4
2 5
2 6
3 2
3 3
4 3
5 2
2
样例输出 #1
6
提示
图中,以墓地 (2,2) 和 (2,3) 为中心的十字架各有 3 个,即它们的虔诚度均为 3。其他墓地的虔诚度为 0。
对于 30% 的数据,满足 1≤N,M≤103。
对于 60% 的数据,满足 1≤N,M≤106。
对于 100% 的数据,满足 1≤N,M≤109,0≤xi≤N,0≤yi≤M,1≤W≤105,1≤k≤10。
存在 50% 的数据,满足 1≤k≤2。
存在 25% 的数据,满足 1≤W≤104。