原文链接:
http://www.cnblogs.com/acSzz/archive/2012/02/24/2367008.html
题目大意:某公司每个月都会盈利或者亏损,盈利的金额为s,亏损的金额为d,该公司每连续5个月报一次财政状况,即(1-5,2-6,3-7,4-8,5-9,6-10,7-11,8-12),这八次报账都显示公司为亏损,问,该公司年底最多能盈利多少,如果不能盈利输出Deficit。
分析:由于每5个月的报账都为亏损,所有连续的5个月里至少有1个月为亏损,则可能产生最优解的情况为如下4种
1 2 3 4 5 6 7 8 9 10 11 12
s s s s d s s s s d s s
//每5个月里只有1个月亏损
s s s d d s s s d d s s
//每5个月里只有2个月亏损
s s d d d s s d d d s s
//每5个月里只有3个月亏损
s d d d d s d d d d s d
//每5个月里只有4个月亏损
从上到下一次枚举四种情况,如果满足条件(每次报账都为亏损),则算出ans = (盈利的月数)*s - (亏损的月数)*d,若ans>0 则输出 否则输出Deficit;若上述4种情况都不满足,则直接输出Deficit.
#include<stdio.h>
int main()
{
int s,d;
while(~scanf(
"%d%d",&s,&
d))
{
int ans=-
1;
if(
4*s-d<
0)
ans=
10*s-
2*
d;
else
if(
3*s-
2*d<
0)
ans=
8*s-
4*
d;
else
if(
2*s-
3*d<
0)
ans=
6*s-
6*
d;
else
if(s-
4*d<
0)ans=
3*s-
9*
d;
else ans=-
1;
if(ans>
0)printf(
"%d\n",ans);
else printf(
"Deficit\n");
}
}
转载于:https://www.cnblogs.com/CheeseZH/archive/2012/04/12/2444808.html
相关资源:数据结构—成绩单生成器