QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#861381 | #9980. Boolean Function Reconstruction | ucup-team191# | WA | 370ms | 4096kb | C++23 | 1.4kb | 2025-01-18 17:12:51 | 2025-01-18 17:13:13 |
Judging History
answer
#include <bits/stdc++.h>
#define X first
#define Y second
#define PB push_back
#define x first
#define y second
#define pb push_back
#define all(a) begin(a),end(a)
using namespace std;
typedef long long ll;
typedef vector<int> vi;
using pii=pair<int,int>;
const int N = 1e5 + 500;
const int INF = 0x3f3f3f3f;
const int MOD = 998244353;
const char en='\n';
const ll LLINF=1ll<<60;
string f(string s,int off)
{
if (s.size()==2)
{
if (s=="00") return "F";
if (s=="01") return string(1,'a'+off);
if (s=="11") return "T";
assert(0);
}
int cl=s.size();
string re=string(1,'a'+off);
if (s.substr(cl/2)==s.substr(0,cl/2)) return f(s.substr(cl/2),off-1);
if (s.substr(cl/2)==string(cl/2,'0')) return "F";
if (s.substr(0,cl/2)==string(cl/2,'1')) return "T";
if (s.substr(cl/2)!=string(cl/2,'1')) re="("+re+"&"+f(s.substr(cl/2),off-1)+")";
if (s.substr(0,cl/2)!=string(cl/2,'0')) re="("+re+"|"+f(s.substr(0,cl/2),off-1)+")";
return re;
}
int t,n;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cin>>t;
while (t--)
{
cin>>n;
string s;
cin>>s;
bool ok=1;
for (int b=0;b<n;++b) for (int i=0;i<(1<<n);++i) if ((i>>b)&1)
{
if (s[i^(1<<b)]=='1' && s[i]=='0') ok=0;
}
//cout<<n<<' '<<s<<endl;
if (!ok)
{
cout<<"No\n";
//cout<<flush;
continue;
}
cout<<"Yes\n";
//cout<<flush;
cout<<f(s,n-1)<<en;
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3712kb
input:
7 2 0001 2 0111 2 1111 3 00010111 1 10 2 0101 5 00000000000000000000000000000001
output:
Yes (b&a) Yes (b|a) Yes T Yes ((c&(b|a))|(b&a)) No Yes a Yes (e&(d&(c&(b&a))))
result:
ok 7 lines, tightest: 4 out of 14 (7 test cases)
Test #2:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
4 1 00 1 10 1 01 1 11
output:
Yes F No Yes a Yes T
result:
ok 4 lines, tightest: 0 out of 11 (4 test cases)
Test #3:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
16 2 0000 2 1000 2 0100 2 1100 2 0010 2 1010 2 0110 2 1110 2 0001 2 1001 2 0101 2 1101 2 0011 2 1011 2 0111 2 1111
output:
Yes F No No No No No No No Yes (b&a) No Yes a No Yes b No Yes (b|a) Yes T
result:
ok 16 lines, tightest: 1 out of 12 (16 test cases)
Test #4:
score: 0
Accepted
time: 1ms
memory: 3712kb
input:
256 3 00000000 3 10000000 3 01000000 3 11000000 3 00100000 3 10100000 3 01100000 3 11100000 3 00010000 3 10010000 3 01010000 3 11010000 3 00110000 3 10110000 3 01110000 3 11110000 3 00001000 3 10001000 3 01001000 3 11001000 3 00101000 3 10101000 3 01101000 3 11101000 3 00011000 3 10011000 3 01011000...
output:
Yes F No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No ...
result:
ok 256 lines, tightest: 4 out of 14 (256 test cases)
Test #5:
score: 0
Accepted
time: 15ms
memory: 3584kb
input:
65536 4 0000000000000000 4 1000000000000000 4 0100000000000000 4 1100000000000000 4 0010000000000000 4 1010000000000000 4 0110000000000000 4 1110000000000000 4 0001000000000000 4 1001000000000000 4 0101000000000000 4 1101000000000000 4 0011000000000000 4 1011000000000000 4 0111000000000000 4 1111000...
output:
Yes F No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No ...
result:
ok 65536 lines, tightest: 9 out of 18 (65536 test cases)
Test #6:
score: 0
Accepted
time: 1ms
memory: 3712kb
input:
168 4 0000000000000000 4 0000000000000001 4 0000000000000011 4 0000000000000101 4 0000000000000111 4 0000000000001111 4 0000000000010001 4 0000000000010011 4 0000000000010101 4 0000000000010111 4 0000000000011111 4 0000000000110011 4 0000000000110111 4 0000000000111111 4 0000000001010101 4 000000000...
output:
Yes F Yes (d&(c&(b&a))) Yes (d&(c&b)) Yes (d&(c&a)) Yes (d&(c&(b|a))) Yes (d&c) Yes (d&(b&a)) Yes (d&((c&b)|(b&a))) Yes (d&((c&a)|(b&a))) Yes (d&((c&(b|a))|(b&a))) Yes (d&(c|(b&a))) Yes (d&b) Yes (d&((c&(b|a))|b)) Yes (d&(c|b)) Yes (d&a) Yes (d&((c&(b|a))|a)) Yes (d&(c|a)) Yes (d&(b|a)) Yes (d&(c|(b...
result:
ok 168 lines, tightest: 9 out of 18 (168 test cases)
Test #7:
score: 0
Accepted
time: 12ms
memory: 3712kb
input:
7581 5 00000000000000000000000000000000 5 00000000000000000000000000000001 5 00000000000000000000000000000011 5 00000000000000000000000000000101 5 00000000000000000000000000000111 5 00000000000000000000000000001111 5 00000000000000000000000000010001 5 00000000000000000000000000010011 5 0000000000000...
output:
Yes F Yes (e&(d&(c&(b&a)))) Yes (e&(d&(c&b))) Yes (e&(d&(c&a))) Yes (e&(d&(c&(b|a)))) Yes (e&(d&c)) Yes (e&(d&(b&a))) Yes (e&(d&((c&b)|(b&a)))) Yes (e&(d&((c&a)|(b&a)))) Yes (e&(d&((c&(b|a))|(b&a)))) Yes (e&(d&(c|(b&a)))) Yes (e&(d&b)) Yes (e&(d&((c&(b|a))|b))) Yes (e&(d&(c|b))) Yes (e&(d&a)) Yes (e...
result:
ok 7581 lines, tightest: 20 out of 26 (7581 test cases)
Test #8:
score: 0
Accepted
time: 3ms
memory: 3968kb
input:
14 1 01 2 0111 3 00010111 4 0001011101111111 5 00000001000101110001011101111111 6 0000000100010111000101110111111100010111011111110111111111111111 7 00000000000000010000000100010111000000010001011100010111011111110000000100010111000101110111111100010111011111110111111111111111 8 00000000000000010000...
output:
Yes a Yes (b|a) Yes ((c&(b|a))|(b&a)) Yes ((d&(c|(b|a)))|((c&(b|a))|(b&a))) Yes ((e&((d&(c|(b|a)))|((c&(b|a))|(b&a))))|((d&((c&(b|a))|(b&a)))|(c&(b&a)))) Yes ((f&((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a)))))|((e&((d&(c|(b|a)))|((c&(b|a))|(b&a))))|((d&((c&(b|a))|(b&a)))|(c&(b&a))))) Yes ((g&...
result:
ok 14 lines, tightest: 68 out of 74 (14 test cases)
Test #9:
score: 0
Accepted
time: 3ms
memory: 3968kb
input:
14 1 01 2 0001 3 00010111 4 0000000100010111 5 00000001000101110001011101111111 6 0000000000000001000000010001011100000001000101110001011101111111 7 00000000000000010000000100010111000000010001011100010111011111110000000100010111000101110111111100010111011111110111111111111111 8 00000000000000000000...
output:
Yes a Yes (b&a) Yes ((c&(b|a))|(b&a)) Yes ((d&((c&(b|a))|(b&a)))|(c&(b&a))) Yes ((e&((d&(c|(b|a)))|((c&(b|a))|(b&a))))|((d&((c&(b|a))|(b&a)))|(c&(b&a)))) Yes ((f&((e&((d&(c|(b|a)))|((c&(b|a))|(b&a))))|((d&((c&(b|a))|(b&a)))|(c&(b&a)))))|((e&((d&((c&(b|a))|(b&a)))|(c&(b&a))))|(d&(c&(b&a))))) Yes ((g&...
result:
ok 14 lines, tightest: 68 out of 74 (14 test cases)
Test #10:
score: 0
Accepted
time: 1ms
memory: 3840kb
input:
14 1 00 2 0001 3 00000001 4 0000000100010111 5 00000000000000010000000100010111 6 0000000000000001000000010001011100000001000101110001011101111111 7 00000000000000000000000000000001000000000000000100000001000101110000000000000001000000010001011100000001000101110001011101111111 8 00000000000000000000...
output:
Yes F Yes (b&a) Yes (c&(b&a)) Yes ((d&((c&(b|a))|(b&a)))|(c&(b&a))) Yes ((e&((d&((c&(b|a))|(b&a)))|(c&(b&a))))|(d&(c&(b&a)))) Yes ((f&((e&((d&(c|(b|a)))|((c&(b|a))|(b&a))))|((d&((c&(b|a))|(b&a)))|(c&(b&a)))))|((e&((d&((c&(b|a))|(b&a)))|(c&(b&a))))|(d&(c&(b&a))))) Yes ((g&((f&((e&((d&(c|(b|a)))|((c&(...
result:
ok 14 lines, tightest: 33 out of 42 (14 test cases)
Test #11:
score: 0
Accepted
time: 2ms
memory: 3968kb
input:
14 1 00 2 0000 3 00000001 4 0000000000000001 5 00000000000000010000000100010111 6 0000000000000000000000000000000100000000000000010000000100010111 7 00000000000000000000000000000001000000000000000100000001000101110000000000000001000000010001011100000001000101110001011101111111 8 00000000000000000000...
output:
Yes F Yes F Yes (c&(b&a)) Yes (d&(c&(b&a))) Yes ((e&((d&((c&(b|a))|(b&a)))|(c&(b&a))))|(d&(c&(b&a)))) Yes ((f&((e&((d&((c&(b|a))|(b&a)))|(c&(b&a))))|(d&(c&(b&a)))))|(e&(d&(c&(b&a))))) Yes ((g&((f&((e&((d&(c|(b|a)))|((c&(b|a))|(b&a))))|((d&((c&(b|a))|(b&a)))|(c&(b&a)))))|((e&((d&((c&(b|a))|(b&a)))|(c...
result:
ok 14 lines, tightest: 0 out of 11 (14 test cases)
Test #12:
score: 0
Accepted
time: 3ms
memory: 3840kb
input:
1 15 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000...
output:
Yes ((o&((n&((m&((l&((k&((j&((i&(h|(g|(f|(e|(d|(c|(b|a))))))))|((h&(g|(f|(e|(d|(c|(b|a)))))))|((g&(f|(e|(d|(c|(b|a))))))|((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a)))))))))|((i&((h&(g|(f|(e|(d|(c|(b|a)))))))|((g&(f|(e|(d|(c|(b|a))))))|((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b...
result:
ok 1 lines, tightest: 12868 out of 16394 (1 test case)
Test #13:
score: 0
Accepted
time: 2ms
memory: 4096kb
input:
1 15 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000100000000000000010000000100010111000000000000000000000000000000000000000...
output:
Yes ((o&((n&((m&((l&((k&((j&(i|(h|(g|(f|(e|(d|(c|(b|a)))))))))|((i&(h|(g|(f|(e|(d|(c|(b|a))))))))|((h&(g|(f|(e|(d|(c|(b|a)))))))|((g&(f|(e|(d|(c|(b|a))))))|((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a))))))))))|((j&((i&(h|(g|(f|(e|(d|(c|(b|a))))))))|((h&(g|(f|(e|(d|(c|(b|...
result:
ok 1 lines, tightest: 11438 out of 16394 (1 test case)
Test #14:
score: 0
Accepted
time: 1ms
memory: 4096kb
input:
1 15 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...
output:
Yes ((o&((n&((m&((l&((k&((j&((i&((h&(g|(f|(e|(d|(c|(b|a)))))))|((g&(f|(e|(d|(c|(b|a))))))|((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a))))))))|((h&((g&(f|(e|(d|(c|(b|a))))))|((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a)))))))|((g&((f&(e|(d|(c|(...
result:
ok 1 lines, tightest: 11438 out of 16394 (1 test case)
Test #15:
score: 0
Accepted
time: 1ms
memory: 3840kb
input:
1 15 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...
output:
Yes ((o&((n&((m&((l&((k&((j&((i&((h&((g&(f|(e|(d|(c|(b|a))))))|((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a)))))))|((g&((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a))))))|((f&((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a)))))|((e&((d&(c|(b|a...
result:
ok 1 lines, tightest: 8006 out of 16394 (1 test case)
Test #16:
score: 0
Accepted
time: 189ms
memory: 3712kb
input:
65536 6 0000001101111111000111111111111101111111111111111111111111111111 6 0000000000000000000100110011011100000000000000000001001100111111 6 0101010101110111011101111111111101110111111111111111111111111111 6 0000001100000011000000110001011100011111001111110011111100111111 6 000000010001011100000001...
output:
Yes ((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b&a))))|((d&(c|(b|a)))|(c&b)))) Yes ((f&(e&((d&(c|b))|((c&b)|(b&a)))))|(e&((d&((c&(b|a))|b))|((c&b)|(b&a))))) Yes ((f&(e|(d|(b|a))))|((e&(d|(b|a)))|((d&(b|a))|a))) Yes ((f&((e&(c|b))|((d&(c|b))|(c|(b&a)))))|((e&((d&((c&(b|a))|(b&a)))|(c&b)))|(c&b))) Yes ((f&((d&...
result:
ok 65536 lines, tightest: 41 out of 42 (65536 test cases)
Test #17:
score: -100
Wrong Answer
time: 370ms
memory: 3712kb
input:
65536 7 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 7 00000001000100010001000101110111000100010111011101110111011111110001000101110111011101110111111100010001011101110111011111111111 7 000000010001001100000001001101...
output:
Yes (g&(f&(e&(d&(c&(b&a)))))) Yes ((g&((f&((e&(d|(b|a)))|((d&(b|a))|(b&a))))|((e&((d&(c|(b|a)))|(b|a)))|((d&(b|a))|(b&a)))))|((f&((e&((d&(c|(b|a)))|(b|a)))|((d&(b|a))|(b&a))))|((e&((d&(b|a))|(b&a)))|((d&(b&a))|(c&(b&a)))))) Yes ((g&((f&((e&(d|((c&(b|a))|b)))|((d&(c|(b|a)))|((c&b)|(b&a)))))|((e&((d&(...
result:
wrong answer 75 operations, you can't use more than 74 operations (test case 3454)