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


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;

}

 

你可能感兴趣的:(枚举)