海盗分金
时间限制: 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;
}