题目简介

有四种操作,要配置出糖水的浓度最高,求配置的糖水的质量,以及溶解在其中的糖的质量。

有SPJ

思路简介

四重循环 暴力枚举

代码和解析

#include<bits/stdc++.h>
using namespace std;
double a,b,c,d,e,f;
int ansm=100,anss=0;
int main(){
    scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f);
    a*=100,b*=100;
    for(double i1=0;i1*a<=f;i1+=1){//a操作
        for(double i2=0;i2*b+i1*a<=f;i2+=1){//b操作
            for(double i3=0;i3*c+i2*b+i1*a<=f;i3+=1){//c操作
                for(double i4=0;i4*d+i3*c+i2*b+i1*a<=f;i4+=1){//d操作
                    if((i3*c+i4*d)/(i1*a+i2*b+i3*c+i4*d)>(double)anss/ansm){//判断是否优于答案
                        double p=(a*e*i1+b*e*i2)/100;
                        if(p<(i3*c+i4*d)) continue;//判断浓度是否小于限制
                        anss=(int)i3*c+i4*d;
                        ansm=(int)(i1*a+i2*b+i3*c+i4*d);//更新答案
                    }
                }
            }
        }
    }
    //输出答案
    cout<<ansm<<' '<<anss;
    return 0;
}