poj2586 Y2K Accounting Bug(贪心)

poj2586 Y2K Accounting Bug(贪心)

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents

题目链接:http://poj.org/problem?id=2586

----------------------------------------------------------------------------------------------------------------------------------------------------------
欢迎光临天资小屋害羞害羞害羞害羞http://user.qzone.qq.com/593830943/main

----------------------------------------------------------------------------------------------------------------------------------------------------------

Language:
Y2K Accounting Bug
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 9979   Accepted: 4970

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

题意比較难懂,事实上仅仅要读懂题意,就非常easy了。
大意是一个公司在12个月中,或固定盈余s,或固定亏损d.
但记不得哪些月盈余,哪些月亏损,仅仅能记得连续5个月的代数和总是亏损(<0为亏损),而一年中仅仅有8个连续的5个月,分别为1~5,2~6,…,8~12
问全年是否可能盈利?若可能,输出可能最大盈利金额,否则输出“Deficit”.

思路:贪心思想,每连续5个月中,在保证这5个月经营之和为亏损的情况下,亏损的月数肯定应尽量往后选,盈利的月数应尽量往前选。

一共五种情况:

把5种情况能够归纳为关于s的判定条件:

0 <= s <1/4d           每连续5个月种至少1个月D

1/4d <= s < 2/3d          每连续5个月种至少2个月D

2/3d <= s < 3/2d          每连续5个月种至少3个月D

3/2d <= s < 4d           每连续5个月种至少4个月D

4d <= s                全年各月必亏损

代码例如以下:

#include <iostream>using namespace std;int main(){	int s, d, flag;	while(cin>>s>>d)	{		int sum = 0;		flag = 0;		if(0<=s && s<(1.0/4)*d)		{			sum = 10*s - 2*d;		}		else if((1.0/4)*d<=s && s<(2.0/3)*d)		{			sum = 8*s-4*d;		}		else if((2.0/3)*d<=s && s<(3.0/2)*d)		{			sum = 6*s-6*d;		}		else if((3.0/2)*d<=s && s<4*d)		{			sum = 3*s-9*d;		}		else if(4*d <= s)		{			flag = 1;		}		if( sum < 0)			flag = 1;		if(flag)			cout<<"Deficit"<<endl;		else			cout<<sum<<endl;	}	return 0;}

                    

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118906.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • int与long long之间的转换

    int与long long之间的转换今天看了下c++primer,才知道假如a为longlong或者double类型,b为int类型,假如有表达式a>=b,则编译器会将b先转化为longlong或者double类型,也就是说会将窄类型自动转化为宽类型,这一步是自动转化的,没有必要在代码中再强制转化。但是有个特例,假如a=INT32_MIN,则-a会越界,其数值在我的平台上为-2147483648,如果要得到

    2022年5月3日
    164
  • 一个二线城市程序员-周末一天的生活

    做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开本文是记录我自己周末一天简单平凡的生活!我是一个在二线城市工作和生活的程序员,在忙碌的了一周结束后,有短暂的周末得以休息和调整,做一些自己想做的事情,看一本书籍,听听音乐,抑或是刷一刷娱乐节目,放松放松。0、早晨AM:9:30一觉睡到自然醒的感觉是很爽的,九点半才起床,唉,是不是起点有点晚了!AM:9:40~…

    2022年2月28日
    43
  • Tomcat常用配置

    Tomcat常用配置

    2020年11月19日
    196
  • xml转Excel的软件_excel合并工具哪个好

    xml转Excel的软件_excel合并工具哪个好在线Excel转XML工具在线Excel转XML工具ExcelToXMLConverter可帮助你在线将excel文件转换为XML。ExcelToXMLConverter可帮助你在线将excel文件转换为XML。ExcelToXMLConverter可帮助你在线将excel文件转换为XML。https://toolgg.com/excel-to-xml.html…

    2022年8月22日
    6
  • centos7 配置lamp 环境[通俗易懂]

    centos7 配置lamp 环境[通俗易懂]搭建版本版本组合php5.6+apache/2.4.6(centos7)+mysql5.7.24因为新系统不能确认哪些指令已经搭建所以安装前需要确认下是否拥有检测是否已经安装过Vimrpm-qa|grepvim显示出完整的包名:vim-common,vim-enhanced,vim-minimal,vim-filesystem表示安装成功若是缺少Vim包名:则使用命令:比如说:vim-enhanced这个包少了,执行:yum-yinstallvim-enha..

    2022年5月29日
    39
  • 【云原生 • Docker】镜像的迁移与备份、Dockerflie 使用方法

    【云原生 • Docker】镜像的迁移与备份、Dockerflie 使用方法Docker中镜像的迁移与备份,Dockerfile的使用方法(附案例)

    2022年9月22日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号