时间限制: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发,不算难题,认真分析就能做出来!
1 #include <bits/stdc++.h>
2 using namespace std;
3 int main()
4 {
5 int n,a,b,i,ans;
6 while(scanf("%d%d%d",&n,&a,&b)!=EOF)
7 {
8 if(a+b==n)
9 ans=n-a;
10 else if(a+b<n)
11 ans=b+1;
12 else if(a+b>n)
13 ans=n-a;
14 printf("%d\n",ans);
15 }
16 return 0;
17 }