[CF955A]Feed the cat
前言。
一个比较好想的题。
分析。
首先我们分析一下题意。
安德鲁喂猫,买面包有两种情况,第一个是
显而易见:
- 第一个情况是当
20 点或20 点以后安德鲁醒来买面包,此时猫的饥饿值最小,并且因为在打折且必须购买,所以是最优方案。 - 第二个方案是在
20 点之前醒来,此时因为猫的饥饿值随时间而变化,所以我们只要比较20 点前买面包便宜还是20 点后买面包便宜即可。
代码如下,仅供参考:
#include<algorithm>
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double hh,mm,h,d,c,n;
int main(){
cin>>hh>>mm>>h>>d>>c>>n;
if(hh>=20){
printf("%.4lf",c*0.8*ceil(h/n));
}
else{
double ans=min(c*ceil(h/n),c*0.8*ceil((h+((20-hh)*60-mm)*d)/n));
printf("%.4lf",ans);
}
return 0;
}
后记。
面包有
大家如有疑问,可以在评论区提出,我会尽力解答的。