版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/oytf10001/article/details/88616572
凸包
描述
给定n个二维平面上的点,求他们的凸包。
输入
第一行包含一个正整数n。
接下来n行,每行包含两个整数x,y,表示一个点的坐标。
输出
令所有在凸包极边上的点依次为p1,p2,...,pm(序号),其中m表示点的个数,请输出以下整数:
(p1 × p2 × ... × pm × m) mod (n + 1)
样例1输入
10
7 9
-8 -1
-3 -1
1 4
-3 9
6 -4
7 5
6 6
-6 10
0 8
样例1输出
7
样例1解释
所以答案为(9 × 2 × 6 × 7 × 1 × 5) % (10 + 1) = 7
样例2
请查看下发文件内的sample2_input.txt和sample2_output.txt。
限制
3 ≤ n ≤ 10^5
所有点的坐标均为范围(-10^5, 10^5)内的整数,且没有重合点。每个点在(-10^5, 10^5) × (-10^5, 10^5)范围内均匀随机选取
极边上的所有点均被视作极点,故在输出时亦不得遗漏
时间:4 sec
空间:512 MB
提示
为了帮助大家完成题目,我们提供了只包含了输入输出功能的程序模板,也提供了含有算法的大部分实现细节的程序。
你可以根据自己的实际情况,在这些程序的基础上进行作答,或不参考这些程序,这将与你的得分无关。
这些程序可以从【这里】下载。
来源
CG课程PA1(需要先加入CG课程,否则没权限看到题目)