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 }
浙公网安备 33010602011771号