Newcoder 132 B.送分题(水~)

Description

数据结构之神 c c z ccz ccz又在出毒瘤数据结构了

神出了这样一个题:

给你三个数,在这三个数中间任意加 ∗ * 或者是 + + +,然后可以随便打括号,只要这个表达式合法

比如说 1   2   3 1\ 2\ 3 1 2 3可以得到:

1 + 2 ∗ 3 = 7 1+2*3=7 1+23=7 1 ∗ ( 2 + 3 ) = 5 1*(2+3)=5 1(2+3)=5 1 ∗ 2 ∗ 3 = 6 1*2*3=6 123=6 $ (1+2)*3=9$

不能改变这三个数的原顺序

最大化表达式的值

Input

输入三行,每行一个数分别表示 a , b , c ( 1 ≤ a , b , c ≤ 10 ) a,b,c(1\le a,b,c\le 10) a,b,c(1a,b,c10)

Output

输出一行一个数表示答案

Sample Input

1
2
3

Sample Output

9

Solution

a = b = c = 1 , a n s = 3 a=b=c=1,ans=3 a=b=c=1,ans=3

a = b = 1 , c > 1 , a n s = 2 c a=b=1,c>1,ans=2c a=b=1,c>1,ans=2c

a > 1 , b = c = 1 , a n s = 2 a a>1,b=c=1,ans=2a a>1,b=c=1,ans=2a

a = c = 1 , b > 1 , a n s = b + 2 a=c=1,b>1,ans=b+2 a=c=1,b>1,ans=b+2

e l s e , a n s = m a x ( ( a + b ) c , a ( b + c ) ) else,ans=max((a+b)c,a(b+c)) else,ans=max((a+b)c,a(b+c))

Code

#include
#include
using namespace std;
int a,b,c;
int main()
{
	while(~scanf("%d%d%d",&a,&b,&c))
	{
		if(a==1&&b==1&c==1)printf("3\n");
		else if(a>1&&b>1&&c>1)printf("%d\n",a*b*c);
		else if(a==1&&b==1||b==1&&c==1)printf("%d\n",2*b);
		else if(a==1&&c==1)printf("%d\n",b+2);
		else printf("%d\n",max((a+b)*c,a*(b+c)));
	}
	return 0;
}

你可能感兴趣的:(Newcoder,水题)