首页 > 试题广场 >

游游的you

[编程题]游游的you
  • 热度指数:1013 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
游游现在有a个'y',b个'o',c个'u',他想用这些字母拼成一个字符串。
三个相邻的字母是"you"可以获得2分,两个相邻的字母是"oo",可以获得1分。
问最多可以获得多少分?

输入描述:
第一行一个整数q,代表询问次数。
接下来q行,每行三个正整数a,b,c,用空格隔开。




输出描述:
输出q行,代表每次询问的答案。
示例1

输入

3
1 1 1
2 3 2
1 5 2

输出

2
4
5

说明

第一次询问,可以拼出"you",获得2分。
第二次询问,可以拼出"oyouyou",获得4分。
第三次询问,可以拼出"uooooyou",获得5分。
import java.util.Scanner;

// 贪心
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int x = in.nextInt();
        int a,b,c;
        while(x--!=0){
            a=in.nextInt();
            b=in.nextInt();
            c=in.nextInt();
            int us = Math.min(a,Math.min(b,c));//先找有几个"you"
            //再找有几个o,o的分数就是o被you拿走后剩余的个数-1,但是注意一点
            //o可能为0,那么分数会计算成-1,此时应该为0
            System.out.println((us*2)+Math.max(b-us-1,0));

        }
        
    }
}

发表于 2025-01-21 21:53:12 回复(0)