题目链接:点击打开链接
题意:一个公司每个月的要么盈利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;
}
}