#include <bits/stdc++.h>
using namespace std;
int x, y;
stack<int> Num;
stack<char> Fu;
string s;
void jisuan() {
while (Fu.top() != '(') {
int yy = Num.top();
Num.pop();
int xx = Num.top();
Num.pop();
char c = Fu.top();
Fu.pop();
if (c == '&') {
Num.push(xx & yy);
} else {
Num.push(xx | yy);
}
}
}
int main() {
cin >> s;
s = " (" + s + ")";
for (int i = 1; i < s.size(); i++) {
if (s[i] == '0') {
Num.push(0);
} else if (s[i] == '1') {
Num.push(1);
} else if (s[i] == '&') {
if (Num.top() == 0) {
cout << i << '-';
x++;
i++;
if (s[i] == '1' || s[i] == '0')
;
else {
int cnt = 1;
while (cnt || s[i] != ')') {
i++;
if (s[i] == '(') cnt++;
if (s[i] == ')') cnt--;
}
}
cout << i << '\n';
} else {
Fu.push('&');
}
} else if (s[i] == '|') {
jisuan();
if (Num.top() == 1) {
cout << i << '+';
y++;
i++;
if (s[i] == '1' || s[i] == '0')
;
else {
int cnt = 1;
while (cnt || s[i] != ')') {
i++;
if (s[i] == '(') cnt++;
if (s[i] == ')') cnt--;
}
}
cout << i << '\n';
} else {
Fu.push('|');
}
} else if (s[i] == '(') {
Fu.push('(');
} else {
jisuan();
Fu.pop();
}
}
cout << Num.top() << '\n';
cout << x << ' ' << y << '\n';
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int x, y;
stack<int> Num;
stack<char> Fu;
string s;
void jisuan() {
while (Fu.top() != '(') {
int yy = Num.top();
Num.pop();
int xx = Num.top();
Num.pop();
char c = Fu.top();
Fu.pop();
if (c == '&') {
Num.push (xx & yy);
if (xx == 0) x++;
} else {
Num.push (xx | yy);
if (xx == 1) y++;
}
}
}
int main() {
cin >> s;
s = " (" + s + ")";
for (int i = 1; i < s.size(); i++) {
if (s[i] == '0') {
Num.push (0);
} else if (s[i] == '1') {
Num.push (1);
} else if (s[i] == '&') {
if (Num.top() == 0) {
x++;
int cnt = 0;
while (cnt || (s[i] != '|' && s[i] != ')') ) {
if (s[i] == '(') cnt++;
if (s[i] == ')') cnt--;
i++;
}
i--;
} else {
Fu.push ('&');
}
} else if (s[i] == '|') {
jisuan();
Fu.push ('|');
} else if (s[i] == '(') {
Fu.push ('(');
} else {
jisuan();
Fu.pop();
}
}
cout << Num.top() << '\n';
cout << x << ' ' << y << '\n';
return 0;
}
/0&1/
#include <bits/stdc++.h>
using namespace std;
int x, y; // x & ; y |
stack<int> Num;
stack<char> Fu;
string s;
void jisuan() {
while (Fu.top() != '(') {
int yy = Num.top();
Num.pop();
int xx = Num.top();
Num.pop();
char c = Fu.top();
Fu.pop();
if (c == '&') {
Num.push (xx & yy);
if (xx == 0) x++;
} else {
Num.push (xx | yy);
if (xx == 1) y++;
}
}
}
int main() {
cin >> s;
s = " (" + s + ")";
for (int i = 1; i < s.size(); i++) {
if (s[i] == '0') {
Num.push (0);
} else if (s[i] == '1') {
Num.push (1);
} else if (s[i] == '&') {
if (Num.top() == 0) {
x++;
int cnt = 0;
while (cnt || (s[i] != '|' && s[i] != ')') ) {
if (s[i] == '(') cnt++;
if (s[i] == ')') cnt--;
i++;
}
i--;
} else {
Fu.push ('&');
}
} else if (s[i] == '|') {
jisuan();
// if (Num.top() == 1) {
// y++;
// int cnt = 0;
// while (cnt || s[i] != ')') {
// if (s[i] == '(') cnt++;
// if (s[i] == ')') cnt--;
// i++;
// if (cnt == 0 && s[i] == '|') y++;
// }
// i--;
// }
// else {
Fu.push ('|');
// }
} else if (s[i] == '(') {
Fu.push ('(');
} else {
jisuan();
Fu.pop();
}
}
cout << Num.top() << '\n';
cout << x << ' ' << y << '\n';
return 0;
}
/*0&1*/