[Codeforces479A] Expression

描述 Description

Petya studies in a school and he adores Maths. His class has been studying arithmetic expressions. On the last class the teacher wrote three positive integers a, b, c on the blackboard. The task was to insert signs of operations ‘+’ and ’*’, and probably brackets between the numbers so that the value of the resulting expression is as large as possible. Let’s consider an example: assume that the teacher wrote numbers 1, 2 and 3 on the blackboard. Here are some ways of placing signs and brackets:

1+2*3=7

1*(2+3)=5

123=6

(1+2)*3=9

Note that you can insert operation signs only between a and b, and between b and c, that is, you cannot swap integers. For instance, in the given sample you cannot get expression (1+3)*2.

It’s easy to see that the maximum value that you can obtain is 9.

Your task is: given a, b and c print the maximum value that you can get.

输入格式 InputFormat

The input contains three integers a, b and c, each on a single line (1 ≤ a, b, c ≤ 10).

输出格式 OutputFormat

Print the maximum value of the expression that you can obtain.

样例输入 SampleInput

1
3
1

样例输出 SampleOutput

5


Codeforces 479A


代码 Code

水。

#include <stdio.h>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int i,j,t,n,m,l,r,k,z,y,x;
int a,b,c,ans;
int main()
{
    scanf("%d%d%d",&a,&b,&c);
    ans=max(a+b*c,a*b+c);
    ans=max(ans,a*(b+c));
    ans=max(ans,a+b+c);
    ans=max(ans,a*b*c);
    ans=max(ans,(a+b)*c);
    printf("%d\n",ans);
    return 0;
}