您的位置:首页 > 编程语言 > C语言/C++

POJ 2586 Y2K Accounting Bug(贪心)

2016-07-28 14:31 405 查看
Y2K Accounting Bug
Time Limit:1000MS     Memory Limit:65536KB     64bit
IO Format:
%lld & %llu

Description

Accounting for Computer Machinists (ACM) has sufferred from the Y2K bug and lost some vital data for preparing annual report for MS Inc. 

All what they remember is that MS Inc. posted a surplus or a deficit each month of 1999 and each month when MS Inc. posted surplus, the amount of surplus was s and each month when MS Inc. posted deficit, the deficit was d. They do not remember which or how
many months posted surplus or deficit. MS Inc., unlike other companies, posts their earnings for each consecutive 5 months during a year. ACM knows that each of these 8 postings reported a deficit but they do not know how much. The chief accountant is almost
sure that MS Inc. was about to post surplus for the entire year of 1999. Almost but not quite. 

Write a program, which decides whether MS Inc. suffered a deficit during 1999, or if a surplus for 1999 was possible, what is the maximum amount of surplus that they can post.

Input

Input is a sequence of lines, each containing two positive integers s and d.

Output

For each line of input, output one line containing either a single integer giving the amount of surplus for the entire year, or output Deficit if it is impossible.

Sample Input

59 237
375 743
200000 849694
2500000 8000000


Sample Output

116
28
300612
Deficit


题目大意:

有一个公司,这个公司全年中,所有的连续五个月的总和都为亏损状态,让你求该公司全年最多盈利多少。

分析:

所有连续五个月都为亏损,这个公司还真有生命力啊



,,,
 这难道就是赚一把撑半年的状况



,干完一票半年不用工作的啊!貌似跑题了233333333。  回归正题!

五个月总和为亏损,那有五种情况:(S 盈利,D亏损)

1、四个月盈利一个月亏损        公司的营业状况可以认为是:SSSSD SSSSD SS

2、三个月盈利两个月亏损        公司的营业状况可以认为是:SSSDD SSSDD SS

3、两个月盈利三个月亏损        公司的营业状况可以认为是:SSDDD SSDDD SS

4、一个月盈利四个月亏损        公司的营业状况可以认为是:SDDDD SDDDD SD

5、全亏损                                 公司的营业状况可以认为是:DDDDD DDDDD DD

附上代码:

/*
盈利   -->  s
亏损   -->  d
分析:
五个月的总和为亏损,可以分为五种情况,
1、四个月盈利,一个月亏损           4*s < d       那么一年中至少要有两个月亏损    所以最终盈利为  10*s - 2*d
2、三个月盈利,两个月亏损           3*s < 2*d     那么一年中至少要有四个月亏损    所以最终盈利为  8*s - 4*d
3、两个月盈利,三个月亏损           2*s < 3*d     那么一年中至少要有六个月亏损    所以最终盈利为  6*s - 6*d
4、一个月盈利,四个月亏损           1*s < 4*d     那么一年中至少要有九个月亏损    所以最终盈利为  3*s - 9*d
5、五个月全亏损                                   那么一年中每个月都亏损          没有盈利
*/

#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
int s,d;

while(cin>> s >> d)
{
int res;
if(d>4*s)
res=10*s-2*d;
else if(2*d>3*s)
res=8*s-4*d;
else if(3*d>2*s)
res=6*(s-d);
else if(4*d>s)
res=3*(s-3*d);
else
res=-1;
if(res<0)
cout<<"Deficit"<<endl;
else
cout<<res<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm 贪心 c++ poj