結果

問題 No.102 トランプを奪え
ユーザー GrenacheGrenache
提出日時 2016-05-18 22:13:18
言語 Java21
(openjdk 21)
結果
AC  
実行時間 162 ms / 5,000 ms
コード長 2,342 bytes
コンパイル時間 3,810 ms
コンパイル使用メモリ 77,888 KB
実行使用メモリ 41,776 KB
最終ジャッジ日時 2024-04-15 22:58:57
合計ジャッジ時間 6,202 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 131 ms
41,364 KB
testcase_01 AC 128 ms
41,416 KB
testcase_02 AC 135 ms
41,692 KB
testcase_03 AC 135 ms
41,332 KB
testcase_04 AC 136 ms
41,492 KB
testcase_05 AC 133 ms
41,284 KB
testcase_06 AC 134 ms
41,516 KB
testcase_07 AC 128 ms
41,080 KB
testcase_08 AC 129 ms
41,344 KB
testcase_09 AC 162 ms
41,628 KB
testcase_10 AC 162 ms
41,776 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.*;


public class Main_yukicoder102 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n1 = sc.nextInt();
        int n2 = sc.nextInt();
        int n3 = sc.nextInt();
        int n4 = sc.nextInt();

        boolean dp[][][][] = new boolean[n1 + 1][n2 + 1][n3 + 1][n4 + 1];

        for (int i1 = 0; i1 <= n1; i1++) {
            for (int i2 = 0; i2 <= n2; i2++) {
                for (int i3 = 0; i3 <= n3; i3++) {
                    for (int i4 = 0; i4 <= n4; i4++) {
                    	if (i1 == 0 && i2 == 0 && i3 == 0 && i4 == 0) {
                    		dp[i1][i2][i3][i4] = false;
                    	} else {
                    		boolean flag = false;
                    		for (int d1 = 1; d1 <= 3; d1++) {
                    			if (i1 - d1 < 0) {
                    				break;
                    			}
                    			if (!dp[i1 - d1][i2][i3][i4]) {
                    				flag = true;
                    				break;
                    			}
                    		}
                    		for (int d2 = 1; d2 <= 3; d2++) {
                    			if (i2 - d2 < 0) {
                    				break;
                    			}
                    			if (!dp[i1][i2 - d2][i3][i4]) {
                    				flag = true;
                    				break;
                    			}
                    		}
                    		for (int d3 = 1; d3 <= 3; d3++) {
                    			if (i3 - d3 < 0) {
                    				break;
                    			}
                    			if (!dp[i1][i2][i3 - d3][i4]) {
                    				flag = true;
                    				break;
                    			}
                    		}
                    		for (int d4 = 1; d4 <= 3; d4++) {
                    			if (i4 - d4 < 0) {
                    				break;
                    			}
                    			if (!dp[i1][i2][i3][i4 - d4]) {
                    				flag = true;
                    				break;
                    			}
                    		}

                    		dp[i1][i2][i3][i4] = flag;
                    	}
                    }
                }
            }
        }

        if (dp[n1][n2][n3][n4]) {
        	System.out.println("Taro");
        } else {
        	System.out.println("Jiro");
        }

        sc.close();
    }
}
0