题目描述
在数列 a1,a2,⋯ ,an中,定义两个元素 ai 和 aj 的距离为∣i−j∣+∣ai−aj∣,即元素下标的距离加上元素值的差的绝对值,其中 ∣x∣ 表示 x 的绝对值。
给定一个数列,请问找出元素之间最大的元素距离。
输入描述
输入的第一行包含一个整数 n。
第二行包含 n个整数 a1,a2,⋯ ,an,相邻的整数间用空格分隔,表示给定的数列。
其中,2≤n≤1000,0≤数列中的数≤10^4
输出描述
输出一行包含一个整数,表示答案。
输入输出样例
示例
输入
5
9 4 2 4 7
输出
9
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
代码(暴力):
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{// 16.14 33请在此输入您的代码int a[1001]={0};int n;scanf("%d",&n);for(int i = 1;i<=n;i++){scanf("%d",&a[i]);//从下标为一时开始}int dist = a[0];for(int i = 1;i<=n-1;i++){for(int j = i;j<=n-1;j++){if(fabs(i-(j+1))+fabs(a[i]-a[j+1])>dist){dist = fabs(i-(j+1))+fabs(a[i]-a[j+1]);}}}printf("%d",dist);return 0;
}