貌似有一些 AC 的代码可以被 Hack。
比如 https://qoj.ac/submission/217760 可以被如下数据 Hack:
input: 11 2 3 2 3 7 6 5 2 8 4 3 11 10 9 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 output: 0 answer: 4
https://qoj.ac/submission/354471 和 https://qoj.ac/submission/361935 可以被如下数据 Hack:
input 11 2 2 3 3 5 6 7 2 4 8 3 9 10 11 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 output: 0 answer: 4
原理大概是如果实现中切第一条线是确定的非特殊斜率,那么可以直接造一排这个斜率的点,然后就会切到两个随机点上,并且之后无法切到任何别的点。
正确的实现应该在切第一条线时使用双关键字 checkmax,这样能保证切到两个凸包端点,简单的实现方法是将切第一条线时的方向向量设为 (∞,1)。