B. 观察发现每次操作结束后两个杯子的数一定是偶数,所以奇数直接输出-1就行,发现只要target在两个杯子水杯和总量的两倍以内就能在一次操作内达到 模拟即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int a,b,s;
signed main()
{
    cin>>t;
    while(t--){
        cin>>a>>b>>s;
        if(a==s||b==s)
            cout<<0<<endl;
        else{
            if(s%2){
                cout<<-1<<endl;
                continue;
            }
            int sum = (a+b)*2;
            int n = 0;
            while(sum<s)
            {
                sum*=2;
                n++;
            }
            cout<<n+1<<endl;
        }
         
    }
    return 0;
}

别问我为什么交了11次我真的想不通啊

一开始我交的code是这个,死都过不了 有没有大佬看看

WAcode:

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int a,b,s;
signed main()
{
    cin>>t;
    while(t--){
        cin>>a>>b>>s;
        if(a==s||b==s)
            cout<<0<<endl;
        else{
            if(s%2)
               cout<<-1<<endl;
            else{
                if(s%((a+b)*2)==0)
                   cout<<(s/((a+b)*2))<<endl;
                else
                    cout<<(s/((a+b)*2))+1<<endl;
            }
        }
         
    }
    return 0;
}