题目大意:
这是一道题目很长,而且不太好理解的题(也许是我英语渣)。
总而言之,就是一个公司,我们叫它 A公司。
A公司的员工发现,A公司的记账方式有 ”bug“ ,因为即使每次记账都是亏损,但是年底一算,却盈利了。
接下来是这个记账方式:
A公司 每连续的五个月记一次账,一年记八次账。分别是
1 - 5月,2 - 6月。。。8 - 12 月
在这一年中,每个月亏损和盈利是你输入的定整数值 s 和 d,s 代表赚钱,d 代表亏钱。
也就是说 我要亏就一个月亏 d 元,要赚就一个月赚 s 元。
要求输入 s 和 d ,输出在每次记账都亏的情况下,一年最多赚多少。
如果怎么算都是赔钱,则输出 Deficit 。
样例: 59 237 --> 116
375 743 --> 28
200000 849694 --> 300612
2500000 8000000 --> Deficit
解题思路:
让我们小小的贪一下,如果想让一年到头赚的最多,就得先赚一波,但是因为五个月一轮回,所以不能赚的太多。
因为五个月的剩下几个月要亏成狗,但要正好亏到负值,而不是一直亏。
所以问题就变成:怎么赚了再亏能亏回来。
然后就变成了判断 s 和 d 的大小关系的一道题。
AC代码:
1 import java.util.*; 2 3 public class Main{ 4 public static void main(String[] args){ 5 Scanner sc = new Scanner(System.in); 6 while(sc.hasNext()){ 7 long a = sc.nextLong(); 8 long b = sc.nextLong(); 9 int flag = 0; 10 if(4 * a < b && flag == 0){ 11 long t = 0;t = 10 * a - 2 * b; 12 if(t > 0){System.out.println(t);} 13 else{System.out.println("Deficit");} 14 flag = 1; 15 } 16 if(3 * a < 2 * b && flag == 0){ 17 long t = 0;t = 8 * a - 4 * b; 18 if(t > 0){System.out.println(t);} 19 else{System.out.println("Deficit");} 20 flag = 1; 21 } 22 if(2 * a < 3 * b && flag == 0){ 23 long t = 0;t = 6 * a - 6 * b; 24 if(t > 0){System.out.println(t);} 25 else{System.out.println("Deficit");} 26 flag = 1; 27 } 28 if(a < 4 * b && flag == 0){ 29 long t = 0;t = 3 * a - 9 * b; 30 if(t > 0){System.out.println(t);} 31 else{System.out.println("Deficit");} 32 flag = 1; 33 } 34 if(flag == 0){System.out.println("Deficit");} 35 } 36 } 37 }