結果
問題 |
No.792 真理関数をつくろう
|
ユーザー |
![]() |
提出日時 | 2019-03-05 12:17:34 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 382 ms / 2,000 ms |
コード長 | 749 bytes |
コンパイル時間 | 10,858 ms |
コンパイル使用メモリ | 221,732 KB |
実行使用メモリ | 61,088 KB |
最終ジャッジ日時 | 2024-06-23 14:12:04 |
合計ジャッジ時間 | 12,901 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 22 |
ソースコード
package main import ( "fmt" "math" ) func main() { var n, q, r int _, _ = fmt.Scan(&n) ans := make([]string, 0) for i := 0; i < int(math.Pow(2, float64(n))); i++ { qs := make([]int, n+1) for j := range qs { _, _ = fmt.Scan(&q) qs[j] = q } r += qs[len(qs)-1] if qs[len(qs)-1] == 1 { a := "" for k := 0; k < len(qs)-1; k++ { if k != 0 { a += "∧" } if qs[k] == 0 { a += "¬" } a += fmt.Sprintf("P_%d", k+1) } ans = append(ans, "("+a+")") } } if r == 0 { ans = []string{"⊥"} } else if r == int(math.Pow(2, float64(n))) { ans = []string{"⊤"} } ansStr := "" for i, a := range ans { if i != 0 { ansStr += "∨" } ansStr += a } fmt.Printf("A=%s\n", ansStr) }