练习一下
来源:互联网 发布:taptap类似的软件 编辑:程序博客网 时间:2024/05/18 03:25
一群人想打斗地主和升级。已知他们已经1个、2个、3个或者4个人成为一桌了,现在要把他们全部变成3人一桌或者4人一桌,问至少移动几个人?(要保证所有人都能进行游戏) 输入格式: 多组数据,每组数据一行,包含4个整数a,b,c,d 0<=a,b,c,d<=100000000表示1个人、两个人、3个人、4个人的桌数。 输出格式: 至少移动的人数,如果不可能完成,输出-1
#include <iostream>
int playCard(int a,int b,int c,int d);
int _tmain(int argc, _TCHAR* argv[])
{
int a = 0,b = 0,c = 0,d = 0;
while(std::cin>>a>>b>>c>>d)
{
int minCount = 0;
minCount = playCard(a,b,c,d);
printf("%d\n",minCount);
}
return 0;
}
int playCard(int a,int b,int c,int d)
{
int count = 0;
int b_a = b - a;
if (b_a > 0)
{
int b_aD2 = b_a / 2;
int b_aR2 = b_a % 2;
if ((a >= 1 && c >= 1) || (a >= 2) || (0 == a && 0 == b_aR2))
{
count = a + b_aD2 * 2 + b_aR2 * 2;
}
else
{
return -1;
}
}
else if (0 == b_a)
{
count = a;
}
else
{
int b_aD3 = (-b_a) / 3;
int b_aR3 = (-b_a) % 3;
if (b_aR3 <= b_aD3 + c + b)
{
count = b + b_aD3 * 2 + b_aR3;
}
else
{
return -1;
}
}
return count;
}
由于不能验证,求测试用例。
- 练习一下
- portforward.sh 练习一下
- 从来没有用过触发器,练习一下
- 数据库试题--练习一下
- 练习一下用Java处理大数
- 【编程练习】复习一下树的遍历
- 今天练习了一下HTTP操作
- 自己的一个小练习,记录一下
- 新手学习大前端,练习一下
- python练习--休息一下小程序
- 今天做了一下Google挑战赛的Java练习
- 有必要练习一下口才和演讲的技巧
- 5月2日地图下载!!同学们练习一下。
- 没事练习一下算法:全排列的递归算法。
- 简单的练习一下双哈希;就表达那么一个意思;
- 今天练习了一下 vnc 的安装,配置,很好
- 自己定义数组类(练习一下运算符重载)
- linux做的小练习分享一下哈~
- C-新手看的求1-100之间能被3整除的数之和
- 如何删除QQ互联
- 设置powerdesigner在描述表结构时code的内容不用name的内容自动填充
- LeetCode Insert Interval
- web页面增加:Enter回车键按钮,ESC重置按钮,文本框默认获取焦点
- 练习一下
- SpringMVC的四个基本注解annotation
- 模拟邮箱登录界面(focus,blur)
- FrameLayout布局中的一种错误用法
- AOJ 2083 Black Force
- 无需App Store,无线发布iOS应用(OTA)
- Quartz 2D编程指南(5) - 变换(Transforms)
- java中Class.forName的含义
- linux和window当前目录