题目看得真蛋疼。 意思:一个公司每个月要么盈利s,要么亏了d。并且每连续5个月的收支为赤字。求该公司全年最大盈利。如果为赤字,输出"Deficit"。 思路:贪心。 #include<iostream> #include<string> #include<cstdio> using namespace std; int def[13]; int main() { int s,d,i,j; while(scanf("%d%d",&s,&d)!=EOF) { for(i=1;i<=12;i++) def[i]=s; int cit=-1*d; if(s*4<d) { def[5]=cit; def[10]=cit; } else if(s*3<d*2) { def[4]=cit; def[5]=cit; def[9]=cit; def[10]=cit; } else if(s*2<d*3) { for(i=3;i<=5;i++) def[i]=cit; for(i=8;i<=10;i++) def[i]=cit; } else if(s<d*4) { for(i=2;i<=5;i++) def[i]=cit; for(i=7;i<11;i++) def[i]=cit; def[12]=cit; } else { for(i=1;i<=12;i++) def[i]=cit; } cit=0; for(i=1;i<=12;i++) cit+=def[i]; if(cit>0) cout<<cit<<endl; else cout<<"Deficit"<<endl; } return 0; }