Codeforces Round #274 (Div. 2) A. Expression

http://codeforces.com/problemset/problem/479/A

题意:
给3个数子,不能改变排序 (1 ≤ a, b, c ≤ 10)
只能用加和乘还有括号
宁可能让结果大。

PS:
这里有2种可能没写(实际已经是已有条件的子集)

1
2
res = max(res, a * b + c);
res = max(res, a + b * c);

对于第一个,ab + c
对应a (b + c)=ab + ac
当a=1,两者相同,a>1,后者大。
同理后一个,a + bc
对应(a + b)
c = ac + bc
c = 1,两者相同,c>1,肯定后者大。
所以这两个条件不用判断了。

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <bits/stdc++.h>
using namespace std;

int main() {
int a, b, c;
cin >> a >> b >> c;
int res = a + b + c;
res = max((a + b) * c, res);
res = max(a * (b + c), res);
res = max(a * b * c, res);
cout << res << endl;
return 0;
};