結果

問題 No.792 真理関数をつくろう
ユーザー tsunabit
提出日時 2019-07-12 22:00:46
言語 Java8
(openjdk 1.8.0.191)
結果
AC  
実行時間 301 ms
コード長 1,136 Byte
コンパイル時間 2,655 ms
使用メモリ 40,732 KB
最終ジャッジ日時 2019-07-12 22:00:55

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
5_gen_case1.txt AC 140 ms
32,736 KB
5_gen_case2.txt AC 165 ms
34,736 KB
5_gen_case3.txt AC 113 ms
32,720 KB
5_gen_case4.txt AC 179 ms
36,900 KB
5_gen_case5.txt AC 113 ms
30,140 KB
5_gen_case6.txt AC 180 ms
36,900 KB
5_gen_case7.txt AC 292 ms
39,100 KB
5_gen_case8.txt AC 164 ms
34,252 KB
5_gen_case9.txt AC 131 ms
30,504 KB
5_gen_case10.txt AC 117 ms
30,136 KB
5_gen_case11.txt AC 117 ms
30,140 KB
5_gen_case12.txt AC 143 ms
30,172 KB
5_gen_case13.txt AC 137 ms
31,912 KB
5_gen_case14.txt AC 124 ms
33,912 KB
5_gen_case15.txt AC 126 ms
32,728 KB
5_gen_case16.txt AC 147 ms
32,200 KB
5_gen_case17.txt AC 217 ms
36,508 KB
5_gen_case18.txt AC 138 ms
31,920 KB
5_gen_case19.txt AC 137 ms
32,068 KB
5_gen_case20.txt AC 114 ms
31,948 KB
handmade1.txt AC 269 ms
36,912 KB
handmade2.txt AC 301 ms
40,732 KB
sample1.txt AC 116 ms
31,896 KB
sample2.txt AC 113 ms
32,536 KB
sample3.txt AC 114 ms
32,724 KB
sample4.txt AC 119 ms
31,900 KB
テストケース一括ダウンロード

ソースコード

diff #
import java.util.*;
import java.io.*;
import java.math.*;

public class No792 {
    public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    	int n = sc.nextInt();
    	StringBuilder sb = new StringBuilder();
    	sb.append("A=");
    	int[][] q = new int[(int)Math.pow(2, n)][n+1];
    	int c = 0;
    	// ∧∨¬⊥⊤
    	for(int i = 0; i < Math.pow(2, n); i++) {
    		for(int j = 0; j < n + 1; j++) {
    			q[i][j] = sc.nextInt();
    		}
    	}
    	
    	for(int i = 0; i < Math.pow(2, n); i++) {
    		if(q[i][n] == 1) {
    			c++;
    			sb.append("(");
    			for(int j = 0; j < n; j++) {
    				if(q[i][j] == 1)  sb.append("P_" + (j+1) + "∧");
    				else sb.append("¬P_" + (j+1) + "∧");
        		}
    			sb.append(")");
    			
    		}
    	}
    	if(c == 0) {
    		System.out.println("A=⊥");
    	}else if(c == (int)Math.pow(2, n)) {
    		System.out.println("A=⊤");
    	}else {
    		String str = "";
    		str = sb.toString().replaceAll("∧\\)\\(", "\\)∨\\(");
        	str = str.toString().replaceAll("∧\\)", "\\)");
        	System.out.println(str);
    	}
    }
}
0