Poj 2586 Y2K Accounting Bug

xiaoxiao2021-02-28  27

题目链接:点击打开链接

题意:一个公司每个月的要么盈利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; } }

转载请注明原文地址: https://www.6miu.com/read-2624911.html

最新回复(0)