TopCoder

User's AC Ratio

NaN% (0/0)

Submission's AC Ratio

NaN% (0/0)

Tags

Description

中世紀是一個黑暗的世紀。農夫約翰的奶牛們總是喜歡在吃草的時候找個伴聊天。而奶牛們吃草的地方,是一個用籬笆圍成一個凸多邊形的草地,所謂的凸多邊形,就是這個多邊形上所有頂點的內角都小於180度的簡單多邊形。每天早晨,農夫約翰都會把奶牛們帶到這片草地,而每一隻牛都有自己喜歡吃草的位置,在吃草的過程中,籬笆圍繞範圍裡面的奶牛們可以兩兩找個伴聊天,悠閒地度過一整天。


好景不常,中世紀是一個黑暗的世紀。嚴格的「草地管制機關」實施了一項新的政策「籬笆三角化政策」。農夫約翰必須增設一些籬笆,使得切割出來的每一個區域都是三角形。這些新增設的籬笆必須從凸多邊形的頂點直線連到另一個頂點,而且它們不能在草地內部相交。


為了配合政策,但是又不能讓吃草的奶牛們找不到伴聊天。農夫約翰架設的籬笆必須使每一個三角形的區域內一定會有偶數隻奶牛。請你幫忙算算看,農夫約翰究竟有多少種三角化這片凸多邊形區域的方法呢?由於答案可能很大,你只要輸出答案除以M的餘數就可以了。
請注意,新架設的籬笆必須是直線段,而且不能有任何奶牛吃草的位置在上面。

Input Format

輸入可能包含多筆測試資料。每一筆測試資料的第一列有三個正整數:N, K以及M (1<=N<=600; 2<=K<=20000; 2<=M<=20000),分別代表這個凸多邊形的籬笆有N個頂點,總共有K隻牛,以及要計算餘數用的M。此外,K一定是偶數。接下來的N列依照順時針的順序給出籬笆N個頂點的座標。緊接著的K列,每一列含有一個座標表示一隻奶牛吃草的位置。輸入的所有座標都是整數,而且其絕對值不會超過15000。輸入以EOF結束。

Output Format

對於每一筆測試資料請輸出農夫約翰可以劃分的方法數除以M的餘數。

Sample Input 1

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

Sample Output 1

3

Hints

Problem Source

Migrated from old NTUJ.

POI17th, stage II. prob3

Subtasks

No. Testdata Range Score

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 10000 65536 200