将题目中的二分写法做一个小小的改变即可,注意:一定要将左边移动,不然会损失一些次数。
#include <bits/stdc++.h>


using namespace std;

int f(int l, int r, int cnt) {
    int n = 0, mid;
    while (l<=r) {
        n++;
        mid = ((long long)l+r)/2;
        if (n==cnt) break;
        else l = mid+1;
    }
    if (cnt>n) {
        return -1;
    }
    return mid;
}

int main() {
    int T;
    cin>>T;
    while (T--) {
        int l, r, cnt;
        cin>>l>>r>>cnt;
        cout<<f(l, r, cnt)<<endl;
    }
    
    return 0;
}