题意及思路
- 题意:排队序列有n人,前面不少于a人,后面不多于b人,问某羊可能出现的位置。(1 ...... n)
- 思路:😃取反思想。我是这么想的,后面可能最多出现b人,😶它的反语是,前面最少有(n-b-1)人,其中去除了自己本身。那么最少有(n-b-1)人的话,某羊的位置最可能前面就是(n-b)位上。😏同理,题意中给出另外一个约束条件,前面不少于a人,则某羊的位置最可能前面的就是(a+1)位上。😯综合两个约束,取小区间。
int m = max(a,n-b-1); cout << n-m << endl;
😮最后,得到区间长度即可。
代码
#include <bits/stdc++.h> using namespace std; int main(){ int n,a,b; cin >> n >> a >> b; int m = max(a,n-b-1); cout << n-m << endl; return 0; }