結果
問題 | No.792 真理関数をつくろう |
ユーザー |
![]() |
提出日時 | 2019-02-22 23:29:06 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 20 ms / 2,000 ms |
コード長 | 1,334 bytes |
コンパイル時間 | 1,456 ms |
コンパイル使用メモリ | 160,120 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-26 00:44:38 |
合計ジャッジ時間 | 2,467 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 22 |
ソースコード
#include <bits/stdc++.h>#define ll unsigned long long#define rep(i, n) for (int i = 0; i < (n); i++)#define MOD (ll)(1000000000 + 7)using namespace std;int main(){ll n;cin >> n;pair<ll, bool> p[(int)powl(2, n)];bool T = true, F = true;rep(i, powl(2, n)){ll key = 0ll;rep(j, n){ll t;cin >> t;key += t << j;}ll t;cin >> t;p[i].first = key;p[i].second = t;if (t == 1)F = false;elseT = false;}if (T){cout << "A=⊤" << endl;return 0;}if (F){cout << "A=⊥" << endl;return 0;}cout << "A=";bool fir = false;rep(i, powl(2, n)){if (p[i].second != 1)continue;if (fir)cout << "∨";fir = true;ll I = p[i].first;cout << "(";rep(j, n){if (((I >> j) & 1) ^ p[i].second == 0){cout << "P_" << (j + 1);}else{cout << "¬P_" << (j + 1);}if (j != n - 1)cout << "∧";}cout << ")";}cout << endl;return 0;}