Sicily 2503:最长字符串(贪心)

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

int fun(double countA, double countB, double maxA, double maxB){
    
    if(maxA == 0)return min(maxB, countB);
    if(maxB == 0)return min(maxA, countA);
    
    int a = countB/maxB;
    int b = ceil(countB/maxB);
    
    if(countA >= b+1){
        double tmp = countB+(b+1)*maxA;
        return min(countA+countB, tmp);
    }
    else{
        if(countA <= a-1)return (maxB+1)*countA+maxB;
        else if(countA==a)return (maxB+1)*countA;
        else if(countA == a+1) return countA+countB;
    }
}

int main(){
    double countA, countB, maxA, maxB;
    cin >> countA >> countB >> maxA >> maxB;
    int a = fun(countA, countB, maxA, maxB);
    int b = fun(countB, countA, maxB, maxA);
    cout << max(a, b) << endl;
} 
原文地址:https://www.cnblogs.com/Vincent-Bryan/p/6581355.html