1585 - 排队
时间限制:1秒 内存限制:128兆
351 次提交 179 次通过
- 题目描述
- BG站在一个有n个人的队伍中,但他并不知道他处于队伍中的哪个位置,他向前向后观察,只能断定他的前方有至少a个人,而后方至多b个人。请求出BG可能处于队伍中不同位置的个数。
- 输入
- 输入包括多组样例,每组样例包括一行,每行包括3个整数n, a和b(其中0 ≤ a, b < n ≤ 100)。
- 输出
- 对于每组样例输出一行,每行有一个整数,即可能处于不同位置的数量。
- 样例输入
3 1 1
5 2 3- 样例输出
2
3- 提示
- 例如第一组样例,全队共有3个人,BG的前方至少1个人,后方至多1个人,则可能处于第2和第3的位置,所以有2种可能,输出2。
- 题目链接:http://acm.hust.edu.cn/problem/show/1585
- 分析:宝宝心里苦,但是我不说!此题一段段分析即可,当时也是WA了5次才过,我不想说什么了,估计是没在状态,主要要注意分阶段考虑,a+b>n、a+b==n、a+b<n分段进行求解,以免出错!当时就搞混了,所以WA了5发,不算难题,认真分析就能做出来!
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,a,b,i,ans;
while(scanf("%d%d%d",&n,&a,&b)!=EOF)
{
if(a+b==n)
ans=n-a;
else if(a+b<n)
ans=b+;
else if(a+b>n)
ans=n-a;
printf("%d\n",ans);
}
return ;
}