昨天学jsp,学不下去了,就找了一道今年ICPC沈阳区的水题来做,但是卡壳在了题意的理解上,也是自己太粗心了,晚上回去想了半天没想明白,就看了下别人对题意的理解才恍然大悟
Problem Description
Here N (N ≥ 3) rabbits are playing by the river. They are playing on a number line, each occupying a different integer. In a single move, one of the outer rabbits jumps into a space between any other two. At no point may two rabbits occupy the same position.
Help them play as long as possible
Help them play as long as possible
Input
The input has several test cases. The first line of input contains an integer t (1 ≤ t ≤ 500) indicating the number of test cases.
For each case the first line contains the integer N (3 ≤ N ≤ 500) described as above. The second line contains n integers a1 < a2 < a3 < ... < aN which are the initial positions of the rabbits. For each rabbit, its initial position
ai satisfies 1 ≤ ai ≤ 10000.
For each case the first line contains the integer N (3 ≤ N ≤ 500) described as above. The second line contains n integers a1 < a2 < a3 < ... < aN which are the initial positions of the rabbits. For each rabbit, its initial position
ai satisfies 1 ≤ ai ≤ 10000.
Output
For each case, output the largest number of moves the rabbits can make.
Sample Input
5 3 3 4 6 3 2 3 5 3 3 5 9 4 1 2 3 4 4 1 2 4 5
Sample Output
1 1 3 0 1
Source
思路:就是求出相邻两个兔子之间空位只和减去,最左边或最右边相邻两个兔子之间空位较小的那个,就得到问题的最大值。
#include <iostream>
#include <cstring>
using namespace std;
int a[501];
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
memset(a,sizeof(a),0);
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int s=0;
for(int i=1;i<n;i++)
{
s+=a[i]-a[i-1]-1;
}
if(a[n-1]-a[n-2]<a[1]-a[0])
cout<<s-(a[n-1]-a[n-2]-1)<<endl;
else
cout<<s-(a[1]-a[0]-1)<<endl;
}
}
Problem Description
Here N (N ≥ 3) rabbits are playing by the river. They are playing on a number line, each occupying a different integer. In a single move, one of the outer rabbits jumps into a space between any other two. At no point may two rabbits occupy the same position.
Help them play as long as possible
Help them play as long as possible
Input
The input has several test cases. The first line of input contains an integer t (1 ≤ t ≤ 500) indicating the number of test cases.
For each case the first line contains the integer N (3 ≤ N ≤ 500) described as above. The second line contains n integers a1 < a2 < a3 < ... < aN which are the initial positions of the rabbits. For each rabbit, its initial position
ai satisfies 1 ≤ ai ≤ 10000.
For each case the first line contains the integer N (3 ≤ N ≤ 500) described as above. The second line contains n integers a1 < a2 < a3 < ... < aN which are the initial positions of the rabbits. For each rabbit, its initial position
ai satisfies 1 ≤ ai ≤ 10000.
Output
For each case, output the largest number of moves the rabbits can make.
Sample Input
5 3 3 4 6 3 2 3 5 3 3 5 9 4 1 2 3 4 4 1 2 4 5
Sample Output
1 1 3 0 1
Source