結果

問題 No.91 赤、緑、青の石
ユーザー kohaku_kohaku
提出日時 2017-01-12 04:14:35
言語 Java8
(openjdk 1.8.0.141)
結果
AC  
実行時間 153 ms
コード長 1249 Byte
コンパイル時間 2094 ms
使用メモリ 26708 KB

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
sample1.txt AC 143 ms
24796 KB
sample2.txt AC 144 ms
24772 KB
sample3.txt AC 142 ms
24764 KB
sample4.txt AC 144 ms
24768 KB
system_test1.txt AC 142 ms
25036 KB
system_test2.txt AC 147 ms
25320 KB
system_test3.txt AC 145 ms
24764 KB
system_test4.txt AC 147 ms
24904 KB
system_test5.txt AC 145 ms
24808 KB
test1.txt AC 148 ms
24940 KB
test2.txt AC 146 ms
24704 KB
test3.txt AC 146 ms
25036 KB
test4.txt AC 144 ms
24788 KB
test5.txt AC 142 ms
25100 KB
test6.txt AC 146 ms
24940 KB
test7.txt AC 153 ms
24548 KB
test8.txt AC 146 ms
24544 KB
test9.txt AC 143 ms
25452 KB
test10.txt AC 144 ms
25436 KB
test11.txt AC 144 ms
26708 KB
test12.txt AC 144 ms
25036 KB
test13.txt AC 148 ms
24772 KB
test14.txt AC 147 ms
25084 KB
test15.txt AC 146 ms
24768 KB
test16.txt AC 147 ms
24840 KB
テストケース一括ダウンロード

ソースコード

diff #
import java.util.*;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int [] rgb = {sc.nextInt(),sc.nextInt(),sc.nextInt()};
        Arrays.sort(rgb);
        int min=rgb[0];
        int A = rgb[1]-rgb[0];
        int B = rgb[2]-rgb[0];
        int ans = min + sim(A,B);
        System.out.println(ans);
    }
    static int sim(int A, int B){
        int r = 0;
        while(A>=3||B>=3){
            if(A>B){
                int tmp=A;
                A=B;
                B=tmp;
            }
            if(B-A>=2){
                int k = (B-A)/2;
                if(k<=A){
                    B=B-3*k;
                    A=A-k;
                    r=r+k;
                }else{
                    r=r+A;
                    B=B-(3*A);
                    A=0;
                }
            }
            if(B-A<=1){
                int k=A/4;
                r=r+k*2;
                A=A-k*4;
                B=B-k*4;
            }
            if(A==0){
                int k=B/5;
                r=r+k;
                break;
            }else if(B>=3){
                A=A-1;
                B=B-3;
                r++;
            }
        }
        return r;
    }
}
0