找了题解,,,没解释题意真心看不懂,,,,,,题意就是每组样例给出几个点,,,从横坐标1开始给,,,,都给的是纵坐标,,找两个点的连线,,使连线上方没有点,,,而且斜率最大。。。。。。。。这题先是想贪心,,,上面有点就不行,,,,,没有的一起比较一下,,但是这样是n^2,,应该是凶多吉少。。。。。。
当然了。。。我看题解金手指开挂了么不是。。。。。
首先,,两个点的上方不能有点,,,,然后是两个点的下方不能有点,,这是因为有的话,,,,那个下面的和这两个里面的一个连线,,,肯定会比那个原来的更优,,,所以就是求两个相邻的点了。。。。。。233333333
没啥说的了。。。哎。。。。
#include<stdio.h>
int main()
{
int n;
__int64 a,b,c;
int x1,x2;
while(scanf("%d", &n) != EOF)
{
__int64 Max = 0, ans; x1 = 1; x2 = 2;
scanf("%I64d", &a);
for(int i = 2; i <= n; i++)
{ scanf("%I64d", &b);
ans = b-a;
ans = ans >= 0 ? ans : -ans;
if(ans > Max)
{
Max = ans;
x1 = i-1;
x2 = i;
}
a = b; //存
}
printf("%d %d\n", x1,x2);
}
return 0;
}