本题没啥好说的,比较简单。 思路就是校B猜的数字将范围分割为两部分,右边的多就猜b + 1,否则猜b - 1。 但是此题有个坑: 题目中说到1<=b<=n<=10^9,即存在b = n = 1的情况,此时只能猜1. 如果这种情况未考虑,只能ac40%!

#include<iostream>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    
    int n = 0, b = 0;
    while(cin >> n >> b)
    {
        if (n == 1) cout << 1 << '\n';
        else if (n >= b * 2) cout << b + 1 << '\n';
        else cout << b - 1 << '\n';
    }
}