結果

問題 No.792 真理関数をつくろう
ユーザー tsunabit
提出日時 2019-07-12 21:47:15
言語 Java8
(openjdk 1.8.0.191)
結果
TLE  
実行時間 -
コード長 1,004 Byte
コンパイル時間 2,614 ms
使用メモリ 28,544 KB
最終ジャッジ日時 2019-07-12 21:47:23

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
5_gen_case1.txt AC 129 ms
21,308 KB
5_gen_case2.txt AC 217 ms
26,608 KB
5_gen_case3.txt AC 119 ms
21,424 KB
5_gen_case4.txt AC 316 ms
26,728 KB
5_gen_case5.txt AC 115 ms
21,276 KB
5_gen_case6.txt AC 312 ms
26,724 KB
5_gen_case7.txt TLE -
5_gen_case8.txt -- -
5_gen_case9.txt -- -
5_gen_case10.txt -- -
5_gen_case11.txt -- -
5_gen_case12.txt -- -
5_gen_case13.txt -- -
5_gen_case14.txt -- -
5_gen_case15.txt -- -
5_gen_case16.txt -- -
5_gen_case17.txt -- -
5_gen_case18.txt -- -
5_gen_case19.txt -- -
5_gen_case20.txt -- -
handmade1.txt -- -
handmade2.txt -- -
sample1.txt -- -
sample2.txt -- -
sample3.txt -- -
sample4.txt -- -
テストケース一括ダウンロード

ソースコード

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();
    	String o = "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++;
    			o += "(";
    			for(int j = 0; j < n; j++) {
    				if(q[i][j] == 1) o += "P_" + (j+1) + "∧";
    				else o += "¬P_" + (j+1) + "∧";
        		}
    			o += ")";
    		}
    	}
    	if(c == 0) {
    		System.out.println("A=⊥");
    	}else if(c == (int)Math.pow(2, n)) {
    		System.out.println("A=⊤");
    	}else {
    		o = o.replaceAll("∧\\)\\(", "\\)∨\\(");
        	o = o.replaceAll("∧\\)", "\\)");
        	System.out.println(o);
    	}
    }
}
0