天天看點

BNU10792:沙漠旅行者

有個旅行者計劃橫穿沙漠,沙漠中水資源很匮乏。旅行者需要依靠補給站的支援,才能橫穿整個沙漠。假設所有的補給站都在一條直線上,而且旅行者一定沿着這條直線走。起點在1号補給站,終點在第N号補給站,起點和終點之間有若幹個補給站,按照到起點的距離從近到遠編号。旅行者有個存儲水的袋子,當旅行者走到補給站時,水袋子就能充滿。一機關的距離會消耗一個機關的水,現在旅行者想請你幫忙,計算出水袋子最小的容量V,以確定旅行者順利完成旅途。途中一旦水袋中沒有水,而且目前坐标又不是補給站,旅行者就會發生危險。

Input

第一行一個正整數 C  表示一共有多少組資料

對于每一組資料: 第一行一個正整數N,表示補給站的個數(2<=N<=100000) 接下來N個整數表示,從1-N号補給站的坐标X,(X<2000000000)

Output

對于每組資料,輸出一行為旅行者能順利到達終點所需要水袋子的最小容量V。

Sample Input

1
6
1 2 3 4 5 6
      

Sample Output

1      
直接找相鄰數相差最大的值      
#include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std;
long long a[100005];

int main()
{
    int t,n,i,j;
    long long maxn,r;
    scanf("%d",&t);
    while(t--)
    {
        maxn = 0;
        scanf("%d",&n);
        for(i = 0; i<n; i++)
            scanf("%lld",&a[i]);
        for(i = 1; i<n; i++)
        {
            r = a[i]-a[i-1];
            if(maxn<r)
                maxn = r;
        }
        printf("%lld\n",maxn);
    }

    return 0;
}