题目大意我还是在网上搜的=_=!!! 搜了才发现,原来我不是一个人在战斗,有这么多读不懂题的陪伴我的少年们(感动的都哭了)。好了废话不说了,接下来我们看一下这道题吧:
题目大意:MS公司由于某种原因导致公司账务数据丢失,已知该公司每个月的盈亏规则:如果盈利,则盈利值恒为s;如果亏损,则亏损值恒为d;又知道MS公司一年中每连续的5个月的总业绩总是亏损的,现在告诉你s和d的值,问你MS公司在一年中能否盈利,如果能,输出最大盈利值,否则,输出Deficit。
分析:我们知道,每连续5个月如果亏损的话,那么无疑只有以下4种可能:
(1)4*s<d;(2)3*s<2*d;(3)2*s<3*d;(4)s<4*d;
如果是第一种情况,要想使每年的总亏损最小,那么每个月的盈亏情况为:ssssd ssssd ss。
接下来我们只需判断10*s和2*d之间的关系了,如果10*s>2*d,那么就盈利,都在亏损。
同理有:
第二种情况为:sssdd sssdd ss
第三种:ssddd ssddd ss
第四种:sdddd sdddd sd
实现代码如下:
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
int s,d,ans;
while(scanf("%d%d",&s,&d)!=-1)
{
if(4*s<d)
ans=10*s-2*d;
else if(3*s<2*d)
ans=8*s-4*d;
else if(2*s<3*d)
ans=6*s-6*d;
else if(s<4*d)
ans=3*s-9*d;
else ans=-1;
if(ans<0) puts("Deficit");
else printf("%d\n",ans);
}
return 0;
}