zoukankan      html  css  js  c++  java
  • Codeforces Round #274 (Div. 2) --A Expression

    主题链接:Expression



    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 abc 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 ab and c print the maximum value that you can get.

    Input

    The input contains three integers ab 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


    大致题意:a, b, c三个数。在三个数中,插入“+” 和“*”运算符的随意两个组合,求能组成的表达式的值得最大值。(能够用括号)


    解题思路:没啥说的。直接暴力,总共就6种组合。




    AC代码:

    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <map>
    #include <string>
    #include <math.h>
    #include <stdlib.h>
    #include <time.h>
    using namespace std;
    #define INF 0x7fffffff
    
    int x[9];
    
    int main()
    {
    //    #ifdef sxk
    //        freopen("in.txt","r",stdin);
    //    #endif
        int a,b,c;
        while(scanf("%d%d%d",&a,&b,&c)!=EOF)
        {
            x[0] = a + b + c;
            x[1] = a + (b * c);
            x[2] = a * (b + c);
            x[3] = (a + b) * c;
            x[4] = (a * b) + c;
            x[5] = a * b * c;
            sort(x, x+6);
            printf("%d
    ",x[5]);
        }
        return 0;
    }


    版权声明:本文sxk原创文章。转载本文,请添加链接^_^

  • 相关阅读:
    Linux 命令后台运行
    Linux Mint,Ubuntu 18 ,Deepin15.7 安装mysql 没有提示输入密码,修改root用户密码过程
    爬虫第一篇基本库的使用——urllib
    Python开发第五篇
    php 5.6 安装openssl extension 出现编译错误
    bash 中的变量可以这么用
    查表法现实数学函数
    封装boto3 api用于服务器端与AWS S3交互
    python 打包详解
    Python使用boto3操作AWS S3中踩过的坑
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4805096.html
Copyright © 2011-2022 走看看