POJ 2586 Y2K Accounting Bug

题目理解比较麻烦,用贪心求解,让亏损的有效覆盖距离最远即可,所有可能的情况有5种:

ssssd ssssd ss 满足4 * s - d < 0

sssdd sssdd ss 满足3 * s - 2 * d < 0

ssddd ssddd ss 满足2 * s - 3 * d < 0

sdddd sdddd sd 满足s - 4 * d < 0

ddddd ddddd dd 满足s - 4 * d >= 0

Code:

1 #include <iostream>
2  using namespace std;
3
4 int main()
5 {
6 int a, b;
7 while (scanf("%d%d", &a, &b)!=EOF)
8 {
9 int sum = 0;
10 if (4 * b - a <= 0)
11 sum = -1;
12 else if(3 * b - 2 * a <= 0)
13 sum = 3 * a - 9 * b;
14 else if(2 * b - 3 * a <= 0)
15 sum = 6 * (a - b);
16 else if(b - 4 * a <= 0)
17 sum = 8 * a - 4 * b;
18 else sum = 10 * a - 2 * b;
19 sum < 0 ? printf("Deficit\n") : printf("%d\n",sum);
20 }
21 return 0;
22 }

 

posted on 2010-10-27 21:01  ltang  阅读(155)  评论(0)    收藏  举报

导航