มีจุด $n$ จุด ได้แก่ $p_i$ บนระนาบสองมิติ โดยจุด $p_i$ ตั้งอยู่ที่พิกัด $(x_i, y_i)$ รับประกันว่าไม่มีสองจุดใดอยู่ในตำแหน่งเดียวกัน และไม่มีสามจุดใดอยู่บนเส้นตรงเดียวกัน
จงหาจำนวนวิธีในการเลือกจุดสามจุดจากเซตที่กำหนดให้ بحيث เปลือกนูน (convex hull) ของสับเซตใดๆ ที่มีจุดทั้งสามนี้เป็นรูปสามเหลี่ยมเสมอ
ข้อมูลนำเข้า
บรรทัดแรกประกอบด้วยจำนวนเต็ม $n$ – จำนวนจุด ในอีก $n$ บรรทัดถัดไป แต่ละบรรทัดประกอบด้วยจำนวนเต็มสองจำนวน $x_i$ และ $y_i$ – พิกัดของจุด $p_i$
ข้อมูลส่งออก
แสดงผลจำนวนเต็มเพียงจำนวนเดียว – จำนวนวิธีในการเลือกจุดสามจุดจากเซตที่กำหนดให้ بحيث เปลือกนูนของสับเซตใดๆ ที่มีจุดทั้งสามนี้เป็นรูปสามเหลี่ยม
ขอบเขตข้อมูล
$3 \le n \le 2000$, $|x_i|, |y_i| \le 10^9$, ไม่มีสองจุดใดอยู่ในตำแหน่งเดียวกัน, ไม่มีสามจุดใดอยู่บนเส้นตรงเดียวกัน
ตัวอย่าง
ข้อมูลนำเข้า 1
7 2 7 0 9 -2 -2 9 4 3 3 -8 -10 -2 -3
ข้อมูลส่งออก 1
2
ข้อมูลนำเข้า 2
4 -1 -1 1 -1 0 1 0 0
ข้อมูลส่งออก 2
4
ข้อมูลนำเข้า 3
7 -50 -33 50 -31 -93 98 -47 -59 16 -35 79 -25 -75 41
ข้อมูลส่งออก 3
15
หมายเหตุ
จุดที่กำหนดให้ในตัวอย่างแรกถูกจัดเรียงดังแสดงในภาพด้านล่าง
ในตัวอย่างแรก วิธีเลือกจุดสามจุดสองวิธีต่อไปนี้เป็นไปตามเงื่อนไข: $\{p_1, p_4, p_6\}$, $\{p_2, p_4, p_6\}$.
จุดที่กำหนดให้ในตัวอย่างที่สองถูกจัดเรียงดังแสดงในภาพด้านล่าง
ในตัวอย่างที่สอง วิธีเลือกจุดสามจุดสี่วิธีต่อไปนี้เป็นไปตามเงื่อนไข: $\{p_1, p_2, p_3\}$, $\{p_1, p_2, p_4\}$, $\{p_1, p_3, p_4\}$, $\{p_2, p_3, p_4\}$.