《黑书》第二道枚举题......我已经无力吐槽


http://acm.timus.ru/problem.aspx?space=1&num=1010

思路:就是相邻的点的斜率必定最大,然后在这两点之间的点必定在它下方(其实看清题意,仔细思考下,就会明白,相邻两点之间由于都是整数,是没有点的.......)
代码:

#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
typedef __int64 ss;
ss dp[200000];
ss deal(ss m)
{
	if(m<0)
	m=-m;
	return m;
}
int main()
{
	int n;
	while(scanf("%d",&n)>0)
	{
		for(int i=1;i<=n;i++)
		scanf("%I64d",&dp[i]);
		int num;
		ss maxx=0;
		for(int i=1;i<n;i++)
		{
			if(maxx<deal(dp[i]-dp[i+1]))
			{
				maxx=deal(dp[i]-dp[i+1]);
				num=i;
			}
		}
		printf("%d %d\n",num,num+1);
	}
	return 0;
}

 

posted @ 2013-05-16 02:43  紫忆  阅读(192)  评论(0编辑  收藏  举报