您的位置:首页 > 其它

ural 1010. Discrete Function

2011-05-13 13:01 316 查看
一个离散的函数,求两点连线的上方没有点而且斜率最大。



开始纠结了好久,后来btw想出来了,他说,如果两点连线的下方有点,那么上面那个点一定可以和下方的某点连起来满足题意。



所以说,这种只能存在在相邻两点之间,也就是x相邻,求|yi - yj| i j相邻差值最大即可。很神奇吧~



#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MAX 100001
long long int a[MAX];
int main()
{
	int n,i;
	scanf("%d", &n);
	for(i=0; i<n; i++)
		scanf("%lld",&a[i]);
	long long max = -1;
	int t;
	for(i=1; i<n; i++)
		if( llabs(a[i] - a[i-1]) > max )
			max = llabs(a[i] - a[t = i-1]);
	printf("%d %d/n",t+1,t+2);
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: