codeforces Round #274(div2) A解题报告
2014-10-20 11:54
316 查看
A. Expression
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard 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+2*3=7
1*(2+3)=5
1*2*3=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.
Sample test(s)
input
output
input
output
a+b+c;
a*b*c;
a+b*c;
(a+b)*c;
a*b+c;
a*(b+c);
然后找最大值就可以了。
也可以简化一下: a, b, c均为正整数
a+b*c = (a/c+b)*c, a/c <= a -> a+b*c <= (a+b)*c;
a*b+c = a*(b+c/a) c/a <= c -> a*b+c <= a*(b+c); 这样就只有4个式子了
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard 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+2*3=7
1*(2+3)=5
1*2*3=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.
Sample test(s)
input
1 2 3
output
9
input
2 10 3
output
60
题目大意:
给三个数,中间可以加*或者是+,使得数字最大,不能改变顺序,但可以加括号。解法:
根据题意,我们可以得知就6种不同的组合:a+b+c;
a*b*c;
a+b*c;
(a+b)*c;
a*b+c;
a*(b+c);
然后找最大值就可以了。
也可以简化一下: a, b, c均为正整数
a+b*c = (a/c+b)*c, a/c <= a -> a+b*c <= (a+b)*c;
a*b+c = a*(b+c/a) c/a <= c -> a*b+c <= a*(b+c); 这样就只有4个式子了
代码:
#include <cstdio> #include <algorithm> using namespace std; int a, b, c; int x[10]; int main() { scanf("%d%d%d", &a, &b, &c); x[1] = a+b+c; x[2] = a*b*c; x[3] = (a+b)*c; x[4] = a*(b+c); sort(x+1, x+7); printf("%d\n", x[6]); }
相关文章推荐
- Codeforces Round #211 (Div. 2) D题(二分,贪心)解题报告
- Codeforces Round #383 (Div. 2) 解题报告
- Codeforces Round #290 (Div. 1) 解题报告(A B)
- Topcoder SRM632 DIV2 解题报告
- 【解题报告】Codeforces Round #365 (Div. 2)
- codeforces Round #237(div2) B解题报告
- codeforces Round #237(div2) D解题报告
- 【解题报告】Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 2)
- Codeforces 474(#271 Div 2) 解题报告
- Codeforces Round #271 (Div. 2) 解题报告
- codeforces Round #263(div2) E解题报告
- Codeforces Round #274 (Div. 2) 解题报告 (C D E)
- Codeforces Round #274 (Div. 2) 解题报告
- Codeforces Round #243 (Div. 2) C. Sereja and Swaps 解题报告
- codeforces Round #260(div2) C解题报告
- codeforces Round #259(div2) E解题报告
- codeforces Round #258(div2) D解题报告
- Codeforces Round #396 (Div. 2) D题Mahmoud and a Dictionary(并查集)解题报告
- Codeforces Round #180 (Div. 2) 解题报告
- Codeforces Round #216 (Div. 2) 解题报告