Rabbits HDU - 6227

2018TYUT暑期ACM模拟赛(4)
Rabbits HDU - 6227
思路:这道题我绕在圈圈里想了很久!!!!题意就是给一堆兔子的位置,外面的兔子(位置排序上的在最左边和最右边的才是外面的兔子)可以跳到里面两只兔子之间。问最多移动多少步。
其实只要把最左边的以一个间隔和最右边的间隔减去小的部分。剩下的减去这间隔之间的兔子数量就是可以移动的步数

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=10000+100;
int a[maxn];
int main()
{
    int T,n;
    int tmp;
    while(scanf("%d",&T)!=EOF)
    {
        while(T--){
            int l_min=1000000,l_max=0;
            scanf("%d",&n);
            for(int i=0;i<n;i++)
            {
                scanf("%d",&a[i]);
            }
            int ans=0;
            int dis1=a[1]-a[0];
            int dis2=a[n-1]-a[n-2];
            if(dis1<dis2)       
            printf("%d\n",a[n-1]-a[1]-1-(n-3));
            else
            printf("%d\n",a[n-2]-a[0]-1-(n-3));
        }   
    }

}//

猜你喜欢

转载自blog.csdn.net/miranda_ymz/article/details/81137510