原题链接:https://ac.nowcoder.com/acm/contest/19304/N

题目描述

数据结构之神ccz又在出毒瘤数据结构了
神出了这样一个题:
给你三个数,在这三个数中间任意加或者是+,然后可以随便打括号,只要这个表达式合法
比如说1 2 3可以得到:
1+2*3=7
1
(2+3)=5
123=6
(1+2)*3=9
不能改变这三个数的原顺序
最大化表达式的值

输入描述:

输入三行,每行一个数

分别表示a,b,c

输出描述:

输出一行一个数表示答案

示例1

输入

1
2
3

输出

9


送命题图片说明
乍一看需要判断的式子很多
但a+b*c的结构一定小于a+b+c或a*b*c
因此只需要判断
W=a+b+c;
X=a*b*c;
Y=(a+b)*c;
Z=a*(b+c);
四个式子的大小
懒得写if了能AC就行

#include <stdio.h>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    int a,b,c,W,X,Y,Z;
    cin >> a;
    cin >> b;
    cin >> c;
    W=a+b+c;
    X=a*b*c;
    Y=(a+b)*c;
    Z=a*(b+c);
    printf("%d\n",max({X,Y,Z,W}));

    return 0;
}

注意

输入要求换行,不要写成cin >> a >> b >> c;