海盗分金
时间限制: 1 Sec 内存限制: 128 MB提交: 4 解决: 4
[ 提交][ 状态][ 讨论版]
题目描述
输入
输出
样例输入
3
3 100 2
4 100 2
5 100 5
样例输出
0
1
98
解题思路:https://blog.csdn.net/y990041769/article/details/22858781(参考这位大牛的)
源代码:
#include <cstdio>
int fac[15]= {2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768};
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n,m,k,ans=-1,flot;
scanf("%d%d%d",&n,&m,&k);
if(2*m+1>=n)
{
if(n==k)
{
ans=m-((n-1)/2);
}
else if(n%2==k%2)
ans=1;
else
ans=0;
}
else
{
n-=2*m;
flot=0;
for(int i=0; i<14; i++)
if(n==fac[i])
{
ans=0;
flot=1;
break;
}
if(flot==0)
{
for(int i=1; i<14; i++)
{
if(n<fac[i])
{
if(k>2*m+fac[i-1] && k<2*m+fac[i])
ans=-1;
else
ans=0;
break;
}
}
}
}
if(ans==-1)
printf("Thrown\n");
else
printf("%d\n",ans);
}
return 0;
}