题目链接:http://codeforces.com/contest/955/problem/A
题意:你养了一只小狗狗,给你hh,mm,h,d,c,n,代表在hh小时mm分这个时刻你的狗狗的饥饿值为n,然后每过一分钟,你的狗狗的饥饿值会增加d。现在你需要去超时给你的狗狗买食物,每个食物花费为c,可以回复n的饥饿值。然后每天晚上20点之后,物品价格会打8折。然后问你把狗狗的饥饿变为0,最少需要花费多少钱。
分析:当时间为20点之后,显然直接购买8折的食物花费最少。当时间为20点之前,我们可以考虑直接购买或者等到20点后购买两种情况即可。
AC代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 int main(){ 6 ios_base::sync_with_stdio(0); 7 cin.tie(0); 8 int mm,hh,h,d,c,n; 9 double result=0; 10 while(cin>>hh>>mm){ 11 cin>>h>>d>>c>>n; 12 if(hh<20){ 13 result=min((double)(h/n+(h%n!=0))*c,(double)(((20*60-hh*60-mm)*d+h)/n+(((20*60-hh*60-mm)*d+h)%n!=0))*c*0.8); 14 } 15 else { 16 result=(double)(h/n+(h%n!=0))*c*0.8; 17 } 18 cout<<result<<endl; 19 } 20 return 0; 21 }