游游的you(贪心+思路+代码)
链接:游游的you__牛客网
来源:牛客网
问题:
游游现在有a个'y',b个'o',c个'u',他想用这些字母拼成一个字符串。
三个相邻的字母是"you"可以获得2分,两个相邻的字母是"oo",可以获得1分。
问最多可以获得多少分?
输入描述:
第一行一个整数qqq,代表询问次数。
接下来qqq行,每行三个正整数a,b,ca,b,ca,b,c,用空格隔开。
1≤q≤1051\leq q \leq 10^51≤q≤105
1≤a,b,c≤1091\leq a,b,c \leq 10^91≤a,b,c≤109
输出描述:
输出qqq行,代表每次询问的答案。
示例1
输入
3 1 1 1 2 3 2 1 5 2
输出
2 4 5
思路
优先合成"you",剩下的在合成"oo",特别注意,"oo"的个数和分值的关系是,个数-1=分值
代码
import java.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int q=in.nextInt();for(int i=0;i<q;i++){int a=in.nextInt(),b=in.nextInt(),c=in.nextInt();System.out.println(fun(a,b,c));}}private static int fun(int a,int b,int c){int x=Math.min(Math.min(a,b),c);//youint y=Math.max(b-x-1,0);//oo;return x*2+y;}
}