赞
踩
阿汪面前有两只盲盒,每只盒子打开都有两种可能:或者装了 X 克狗粮,或者是一只容量为 Y 克的狗粮储蓄盒。如果是狗粮,阿汪可以快乐地吃掉;如果是空储蓄盒,那就倒霉了,阿汪必须想办法找到狗粮把这只储蓄盒装满,自己还吃不到。
正当阿汪发愁不知道该怎么选的时候,铲屎官大手一挥:“小孩子才做选择,大人全都要!”但全都要的结果,却不一定是赚了还是亏了……
我们假设聪明的阿汪总是能嗅出狗粮最多的盒子,并且绝不会选任何储蓄盒。而铲屎官没有这样的鼻子,他一定是全都要。铲屎官如果打开了有储蓄盒的盒子,就必须想办法把储蓄盒装满,他会优先用另一只盒子里的狗粮装(如果另外一只盒子里有狗粮),不够了还得自己去买新的狗粮,这样阿汪可就亏啦,什么都吃不到了。本题就请你判断阿汪到底是赚了还是亏了。
输入在一行中给出两个整数,绝对值都不超过 100,中间用一个空格分开,分别代表两只盒子里的东西。如果是正数就表示是狗粮的份量,如果是负数就表示绝对值是空盆的容量。两个数都肯定不是 0,因为保证没有空盒子。
第一行输出两个结果:如果让阿汪选能吃到的狗粮 A,和如果铲屎官全都要能吃到的狗粮 B。两个数字间用一个空格分开。如果铲屎官的决定让阿汪赚到了,就在第二行输出一个笑脸 ^_^
,否则输出一个哭脸 T_T
。但如果反正什么都吃不到(两个盒子里都没有狗粮),就输出一张躺平脸 -_-
。
12 18
- 18 30
- ^_^
12 -18
- 12 0
- T_T
本题算法上没什么难度,主要是有些情况大家没考虑到
1.当A.B都大于0是,狗子选的一定是最大的,并且狗子会笑
2.不管狗粮是否大于盒子容量,狗子都会哭,因为他本来可以吃更多,不过还是要分情况,狗粮大于容量,后输入的为剩余狗粮数,不大于时输入为0
3.当A.B都为盒子时,输出两个0和躺平脸
情况就这些,下面附上AC代码:
- import java.io.*;
-
- public class Main {
- public static void main(String[] args) throws IOException {
- BufferedReader star = new BufferedReader(new InputStreamReader(System.in));
- PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
- String[] s = star.readLine().split(" ");
- int a = Integer.parseInt(s[0]);
- int b = Integer.parseInt(s[1]);
- if (a>0&&b>0){
- out.println(Math.max(a, b)+" "+(a+b));
- out.println("^_^");
- }else if (a>0&&b<0||a<0&&b>0){
- if(a+b>0){
- out.println((a>0?a:b)+" "+(a+b));
- out.println("T_T");
- }else if (a+b<=0){
- out.println((a>0?a:b)+" "+0);
- out.println("T_T");
- }
- }else {
- out.println(0+" "+0);
- out.println("-_-");
- }
- out.flush();
- }
- }
希望比赛中大家不要因为这些小错误扣分,祝大家疯狂AC!
这两天会发布BufferedReader,StreamTokenizer以及PrintWriter的简单用法(其实就是Scanner和System.out的升级版,运行比较快,预防一下超时),很简单的,不会的同学别急,等我一两天!
觉得还不错的同学可以点赞+关注后续一起学习!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。