题目链接:http://codeforces.com/problemset/problem/626/C
题目大意:有n个人搭建高度以2为倍数的塔,有m个人搭建高度以3位倍数的塔, 高度不能相同,求最高的塔的最小值
贪心好了,要是没有重复的情况的话就是min(2*n,3*m),但是还是不能相同,淦。。。
首先nmax为n个人的最大值,mmax为m个人的最大值
重复的地方相当于有一个人没搭建,所以在nmax和mmax的小的那个上面加上2或者3,知道没有重复的为止,输出大的那个好了
代码如下:
#include<cstdio>
#include<iostream>
using namespace std;
int n,m;
int nmax,mmax;
int main()
{
scanf("%d%d",&n,&m);
if (n==0)
{
printf("%d\n",3*m);
}
else
{
if (m==0)
{
printf("%d\n",2*n);
}
else
{
nmax=2*n;
mmax=3*m;
for (int i=6;i<=min(nmax,mmax);i+=6)
{
if (nmax>mmax)
{
mmax+=3;
}
else
{
nmax+=2;
}
}
printf("%d\n",max(nmax,mmax));
}
}
return 0;
}