結果

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

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
5_gen_case1.txt AC 117 ms
21,288 KB
5_gen_case2.txt AC 169 ms
26,092 KB
5_gen_case3.txt AC 119 ms
21,236 KB
5_gen_case4.txt AC 188 ms
26,596 KB
5_gen_case5.txt AC 113 ms
21,196 KB
5_gen_case6.txt AC 185 ms
26,596 KB
5_gen_case7.txt AC 294 ms
27,828 KB
5_gen_case8.txt AC 156 ms
23,692 KB
5_gen_case9.txt AC 116 ms
21,196 KB
5_gen_case10.txt AC 119 ms
21,288 KB
5_gen_case11.txt AC 118 ms
21,288 KB
5_gen_case12.txt AC 117 ms
21,216 KB
5_gen_case13.txt AC 125 ms
21,412 KB
5_gen_case14.txt AC 115 ms
21,400 KB
5_gen_case15.txt AC 118 ms
21,412 KB
5_gen_case16.txt AC 150 ms
22,544 KB
5_gen_case17.txt AC 217 ms
26,680 KB
5_gen_case18.txt AC 137 ms
21,748 KB
5_gen_case19.txt AC 123 ms
21,404 KB
5_gen_case20.txt AC 121 ms
21,216 KB
handmade1.txt AC 270 ms
27,080 KB
handmade2.txt AC 301 ms
29,936 KB
sample1.txt AC 113 ms
21,204 KB
sample2.txt AC 113 ms
21,228 KB
sample3.txt AC 114 ms
21,208 KB
sample4.txt AC 121 ms
21,292 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