题目链接:点击打开链接
题意:一个公司每个月的要么盈利s,要么亏损d,并且这个公司任何连续的五个月的总收入都是赔的。求是否存在这样的,若存在,输出盈利,不存在就输出Deficit
题解:因为每5个月都要是亏损的。所以我们会想到,如何分配这5月中亏损的月份。
我们发现SSDDD和DDDSS是一样的。并且如果D靠后的话反而可以让后面的月份用上
比如若一个月亏损就可以让五个月
1 - 5 月:SSSSD
2 - 6 月 : SSSDS
这样的话反而能让全年收入最大化。
那么我们会发现:现在就变成如何去分配亏算的月份。
有如下五种
SSSSDSSSSDSS
SSSDDSSSDDSS
SSDDDSSDDDSS
SDDDDSDDDDSD
DDDDDDDDDDDD
然后判断一下就OK了
#include<iostream> #include<cstdio> using namespace std; int main(){ int s,d; int sNum,dNum; while(~scanf("%d%d",&s,&d)){ if(d > 4 *s){ sNum = 10; dNum = 2; } else if(2 *d > 3*s){ sNum = 8; dNum = 4; } else if(3 *d > 2*s){ sNum = 6; dNum = 6; } else if(4 *d > s){ sNum = 3; dNum = 9; } else { sNum = 0; dNum = 12; } int sum = sNum * s - dNum*d; if(sum > 0) cout << sum << endl; else cout <<"Deficit" << endl; } }