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));
}
}
}//