专题一 Problem N

来源:互联网 发布:海川网络兼职平台 编辑:程序博客网 时间:2024/05/10 12:42

一、题目编号:

           Problem  N

二、简单题意:

          某公司要统计全年盈利状况,对于每一个月来说,如果盈利则盈利S,如果亏空则亏空D。公司每五个月进行一次统计,全年共统计8次(1-5、2-6、3-7、4-8、5-9、6-10、7-11、8-12),已知这8次统计的结果全部是亏空(盈利-亏空<0)。题目给出S和D,判断全年是否能盈利,如果能则求出盈利的最大值,如果不能盈利则输出Deficit。

三、解题思路形成过程

          一共统计8次,8次都是亏空的,要保证尽量盈利。所以把亏空放到5月份,如果还不能保证1-5月总额亏空,再在4月亏空,以此类推,直到1-5月亏空,6-10月复制1-5月。
全年的盈亏情况可以由前五个月直接决定
1、若SSSSD亏空,那么全年最优情况为SSSSDSSSSDSS
2、若SSSDD亏空,那么全年最优情况为SSSDDSSSDDSS
3、若SSDDD亏空,那么全年最优情况为SSDDDSSDDDSS
4、若SDDDD亏空,那么全年最优情况为SDDDDSDDDDSD
5、若DDDDD亏空,全年必亏空

四、感想

       这个题好难。。

五、AC代码 

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

0 0