poj2586

来源:互联网 发布:淘宝开店上货教程 编辑:程序博客网 时间:2024/05/22 10:49
  1. #include<iostream>  
  2. using namespace std;  
  3.   
  4. int main(void)  
  5. {  
  6.     double s,d;  
  7.     while(cin>>s>>d)  
  8.     {  
  9.         bool flag=false;  
  10.         int surplus=0;  
  11.         if(s>=4*d)  
  12.             flag=true;  
  13.   
  14.         else if((s>=1.5*d)&&(s<4*d))  
  15.         {  
  16.             surplus=3*s-9*d;  
  17.             if(surplus<0)  
  18.                 flag=true;  
  19.         }  
  20.   
  21.         else if((s>=0.666666*d)&&(s<1.5*d))  
  22.         {  
  23.             surplus=6*(s-d);  
  24.             if(surplus<0)  
  25.                 flag=true;  
  26.         }  
  27.   
  28.         else if((s>=0.25*d)&&(s<0.666666*d))  
  29.         {  
  30.             surplus=8*s-4*d;  
  31.             if(surplus<0)  
  32.                 flag=true;  
  33.         }  
  34.   
  35.         else if((s>=0)&&(s<0.25*d))  
  36.         {  
  37.             surplus=10*s-2*d;  
  38.             if(surplus<0)  
  39.                 flag=true;  
  40.         }  
  41.   
  42.         if(flag)  
  43.             cout<<"Deficit"<<endl;  
  44.         else  
  45.             cout<<surplus<<endl;  
  46.     }  
  47.     return 0;  


实际上;只要讨论5种情况即可;(任一月固定盈余s,或固定亏损d).

SSSSDSSSSDSS   4s<d       保证“连续5个月必亏损”,每连续5个月种至少1个月D,

                          保证可能有全年最大盈余,每连续5个月中至多4个月S


SSSDDSSSDDSS   3s<2d      保证“连续5个月必亏损”,每连续5个月种至少2个月D,

保证可能有全年最大盈余,每连续5个月中至多3个月S


SSDDDSSDDDSS   2s<3d      保证“连续5个月必亏损”,每连续5个月种至少3个月D,

保证可能有全年最大盈余,每连续5个月中至多2个月S


SDDDDSDDDDSD   s<4d       保证“连续5个月必亏损”,每连续5个月种至少4个月D,

保证可能有全年最大盈余,每连续5个月中至多1个月S


DDDDDDDDDDDD   s>=4d      保证“连续5个月必亏损”,每连续5个月种至少5个月D,

每月亏损,此情况全年必亏损

 


0 0
原创粉丝点击