poj 2586 Y2K Accounting Bug
#include <iostream> //贪心
using namespace std;
int months[20];
int main()
{
int d,s,i,j,sum,total;
while(cin>>s>>d)
{
if(s>=4*d)
printf("Deficit\n");
else
{
d*=-1;
for(i=0;i<4;++i)
months[i]=d;
for(i=4;i<16;++i)
{
months[i]=s;
sum=0;
for(j=i-4;j<=i;++j)
sum+=months[j];
if(sum>=0)
months[i]=d;
}
total=0;
for(i=4;i<16;++i)
total+=months[i];
if(total<0)
printf("Deficit\n");
else
printf("%d\n",total);
}
}
return 0;
}
//每个月会给出一个财务报告:赢利或者亏空 如果赢利则赢利s,如果亏空则亏空d
//(12个月都一样,只有赢利s或者亏空d两种情况)
//每五个月也会给出一个报告(1~5 ,2~6 。。。)一年一共有8次这样的报告,已知这8次都报告亏空
//问整年情况:如果亏空则输出Deficit,如果赢利,输出整年可能赢利的最大值
//就是要求对长度为12的由s,d组成的字符串的组合,满足每5个相邻的字符的和都小于0,输出最大的和,如果<0则输出Defict