A. Expression
time limit per test1 second
memory limit per test256 megabytes
inputstandard input
outputstandard output
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+23=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.
Input
The input contains three integers a, b and c, each on a single line (1 ≤ a, b, c ≤ 10).
Output
Print the maximum value of the expression that you can obtain.
Examples
inputCopy
1
2
3
outputCopy
9
inputCopy
2
10
3
outputCopy
60
问题简述:
求不同情况的几种算法(一一列举所有情况)
贴上代码↓↓↓
#include <iostream>
#include <algorithm>
using namespace std;
void main()
{
int a, b, c,d[6];
int max1 = 0;
cin >> a;
cin >> b;
cin >> c;
d[0] = a + b + c;
d[1] = (a + b)*c;
d[2] = a + (b*c);
d[3] = a * b + c;
d[4] = a * (b + c);
d[5] = a * b*c;
for (int i = 0; i < 6; i++)
{
max1 = max(max1, d[i]);
}
cout << max1;
}