捜犬後端筆記試験、2020.9.5

9514 ワード

道具问题:A,B,C道具それぞれa,b,c个.2つの任意の道具は別の道具を交換することができて、1つのA、B、Cの1組、1つの奨励を交換することができて、最大でもう1つの奨励をいくら交換することを求めます.入力4,4,2入力3
import java.util.Arrays;

public class Test9 {
    public static void main(String[] args) {
        System.out.println(numberofprize(3,5,10));
    }

    static int numberofprize(int a,int b,int c){
        int res = 0;
        int[] data = {a,b,c};
        Arrays.sort(data);
        data[2] = data[2]-data[0];
        data[1] = data[1]-data[0];
        res = data[0];
        data[0] = 0;
        int num = 0;
        while(true){
            if(data[1]>0 && data[2]-1>data[1] && data[2]>2){
                data[2] = data[2]-3;
                num++;
            }
            else if(data[2]-1>0 && data[1]-1>0){
                data[2] = data[2]-2;
                data[1] = data[1]-2;
                num++;
            }
            else if(data[1]==0 && data[2]>4){
                data[2] = data[2]-5;
                num++;
            }
            else{
                break;
            }
        }
        return res+num;
    }
}