P9761 [ROIR 2021 Day 1] 两台机器 题解

· · 题解

感谢老师的指导。

分类讨论:要么只选第一台机器,要么只选第二台机器,要么先用第一台再用第二台,要么先用第二台再用第一台,就这四种情况。

分类求时间,看看时间是否与 k 相等,即要求时间,再求最大值。

代码如下:

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    long long kkksc, aya, xht, pinkr, ddd;
    cin >> kkksc >> aya >> xht >> pinkr >> ddd;
    long long ans = 0;
    if (kkksc-aya-pinkr >= 0) cout << max((kkksc-aya)*xht+(kkksc-aya-pinkr)*ddd, (kkksc-pinkr)*ddd+(kkksc-aya-pinkr)*xht);
    else
    {
        if (kkksc >= aya) ans = (kkksc-aya) * xht;
        if (kkksc >= pinkr) ans = max(ans, (kkksc-pinkr)*ddd);
        cout << ans;
    }
    return 0;
}