题意及思路

  • 题意:排队序列有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;
}