证明一个东西
如果a,b之间还有c的话,那么如果c在ab下方,Kcb>Kab,c在ab上方Kac>Kab ,就是说斜率最大的一定在相邻两点产生。
那么算法就很明显了。。又是丑陋的穷举。。
有个细节要注意 考虑到负数的存在 最好开INT64(maxlongint-(-maxlongint)会悲剧)。
#include<stdio.h>
__int64 v[100001];
long i,n,jl;
__int64 ans,k,a,b;
int main()
{
scanf("%ld",&n);
for (i=1;i<=n;i++)
scanf("%I64d",&v[i]);
ans=v[2]-v[1];jl=2;
for (i=3;i<=n;i++)
{
k=v[i]-v[i-1];
if (k<0)
k=-k;
if (k>ans)
{
ans=k;
jl=i;
}
}
printf("%ld %ld",jl-1,jl);
}
posted on 2011-06-27 17:36
梦转千寻 阅读(52)
评论(0) 编辑 收藏 引用