牛客周赛 Round 50

youhualiuh / 2024-07-08 / 原文

这场还是差点 

A.小红的最小最大

题意:

min(a, b) + x是不是比 max(a, b) 如果比它大输出YES 否则输出NO

Code:

#include<bits/stdc++.h>
    
using namespace std;
    
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    int a, b, x; cin >> a >> b >> x;
    cout << (min(a, b) + x > max(a, b) ? "YES\n" : "NO\n");
    return 0;
}

  

B.小红的四则运算(easy)

题意:

经过任意四则运算后可得的最大值,允许加括号,但每个数只能被使用一次,且必须被使用一次。 easy 版本可以调整三个数的顺序。所以只有三种可能排完序后a, b,c因此只要a+b+c --- (a + b) * c --- (a + b) * c枚举即可

Code:

#include<bits/stdc++.h>
    
using namespace std;
    
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    int a[3] = {0};
    cin >> a[0] >> a[1] >> a[2];
    sort(a, a + 3);
    cout << max({a[0] + a[1] + a[2], a[0] * a[1] * a[2], (a[0] + a[1]) * a[2]});
    return 0;
}

C.小红的四则运算(hard)

题意:

这个只能按照顺序来 不排序加上都加个条件a * (b + c)

Code:

#include<bits/stdc++.h>
    
using namespace std; 

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    int a[3] = {0};
    for (int i = 0; i < 3; i++) {
        cin >> a[i];
    } 
    cout << max({a[0] + a[1] + a[2], a[0] * a[1] * a[2], (a[0] + a[1]) * a[2], a[0] * (a[1] + a[2])});
    return 0;
}