#P3504. [POI 2010] OWC-Sheep

[POI 2010] OWC-Sheep

Description

译自 POI 2010 Stage 2. Day 2「Sheep

Byteasar 有一个凸多边形牧场,里面有一些羊。
现在 Byteasar 想要把这个凸多边形划分成若干三角形(划分线不能在牧场中相交,只能在顶点相交),使得每一个三角形里面的羊都有偶数只。
Byteasar 想知道有多少种方案,你只要输出方案数对 mm 取余后的结果即可。

Input Format

第一行三个空格隔开的正整数 n,k,mn,k,m ,分别表示牧场的顶点数,羊的个数,以及模数。
接下来 nn 行,每行两个空格隔开的正整数 xi,yix_i,y_i ,表示牧场的顶点坐标。
接下来 kk 行,每行两个空格隔开的正整数 pi,qip_i,q_i ,表示羊的坐标。

Output Format

一行一个整数,表示方案数对 mm 取模的结果。

翻译来自于 LibreOJ

5 4 10
5 5
3 0
-1 -1
-3 4
1 10
1 0
-1 0
1 6
-2 5
3

Hint

对于所有数据:

  • 4n6004\le n\le 600m20 000m\le 20\ 000
  • 2k2\le k2k2\mid k
  • 15 000xi,yi,pi,qi15 000-15\ 000\le x_i,y_i,p_i,q_i\le 15\ 000
  • 牧场的顶点坐标按顺时针顺序给出;
  • 保证羊严格在多边形内部。