题解 | #牛牛变魔术#
满意的数字
https://ac.nowcoder.com/acm/contest/11220/A
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;
}