#include<cstdio>
#include<iostream>
#include<stack>
#include<cstring>
using namespace std;
stack<char> vect;
char s[1000+5];
int main(){
while(gets(s)){
for(int i=0;i<strlen(s);i++){
if(s[i]!=' '&&s[i]!=')')vect.push(s[i]);
else if(s[i]==')'){
char a,b,c;
while(1){
a=vect.top();vect.pop();
b=vect.top();vect.pop();
if(b=='('){
vect.push(a);
break;
}
if(b=='!'){
if(vect.top()=='('){
vect.pop();
if(a=='V')vect.push('F');
else if(a=='F')vect.push('V');
break;
}
else{
if(a=='V')vect.push('F');
else if(a=='F')vect.push('V');
}
}
if(b=='&'){
c=vect.top();vect.pop();
if(!vect.empty()&&vect.top()=='!'){
vect.pop();
if(c=='F')c='V';
else if(c=='V')c='F';
}
if(vect.top()=='('){
vect.pop();
if(a=='F'&&c=='V'||a=='F'&&c=='F'||a=='V'&&c=='F')vect.push('F');
else if(a=='V'&&c=='V')vect.push('V');
break;
}
if(a=='F'&&c=='V'||a=='F'&&c=='F'||a=='V'&&c=='F')vect.push('F');
else if(a=='V'&&c=='V')vect.push('V');
}
if(b=='|'){
if(a=='V'){
while(vect.top()!='('){
vect.pop();
}
vect.pop();
vect.push('V');
break;
}
}
}
}
}
while(1){
char a,b,c;
a=vect.top();vect.pop();
if(vect.empty()){
printf("%c\n",a);
break;
}
b=vect.top();vect.pop();
if(b=='!'){
if(a=='V')vect.push('F');
else if(a=='F')vect.push('V');
}
if(b=='&'){
c=vect.top();vect.pop();
if(!vect.empty()&&vect.top()=='!'){
vect.pop();
if(c=='F')c='V';
else if(c=='V')c='F';
}
if(a=='F'&&c=='V'||a=='F'&&c=='F'||a=='V'&&c=='F')vect.push('F');
else if(a=='V'&&c=='V')vect.push('V');
}
if(b=='|'){
if(a=='V'){
while(!vect.empty()){
vect.pop();
}
printf("V\n");
break;
}
}
}
}
return 0;
#include<iostream>
#include<stack>
#include<cstring>
using namespace std;
stack<char> vect;
char s[1000+5];
int main(){
while(gets(s)){
for(int i=0;i<strlen(s);i++){
if(s[i]!=' '&&s[i]!=')')vect.push(s[i]);
else if(s[i]==')'){
char a,b,c;
while(1){
a=vect.top();vect.pop();
b=vect.top();vect.pop();
if(b=='('){
vect.push(a);
break;
}
if(b=='!'){
if(vect.top()=='('){
vect.pop();
if(a=='V')vect.push('F');
else if(a=='F')vect.push('V');
break;
}
else{
if(a=='V')vect.push('F');
else if(a=='F')vect.push('V');
}
}
if(b=='&'){
c=vect.top();vect.pop();
if(!vect.empty()&&vect.top()=='!'){
vect.pop();
if(c=='F')c='V';
else if(c=='V')c='F';
}
if(vect.top()=='('){
vect.pop();
if(a=='F'&&c=='V'||a=='F'&&c=='F'||a=='V'&&c=='F')vect.push('F');
else if(a=='V'&&c=='V')vect.push('V');
break;
}
if(a=='F'&&c=='V'||a=='F'&&c=='F'||a=='V'&&c=='F')vect.push('F');
else if(a=='V'&&c=='V')vect.push('V');
}
if(b=='|'){
if(a=='V'){
while(vect.top()!='('){
vect.pop();
}
vect.pop();
vect.push('V');
break;
}
}
}
}
}
while(1){
char a,b,c;
a=vect.top();vect.pop();
if(vect.empty()){
printf("%c\n",a);
break;
}
b=vect.top();vect.pop();
if(b=='!'){
if(a=='V')vect.push('F');
else if(a=='F')vect.push('V');
}
if(b=='&'){
c=vect.top();vect.pop();
if(!vect.empty()&&vect.top()=='!'){
vect.pop();
if(c=='F')c='V';
else if(c=='V')c='F';
}
if(a=='F'&&c=='V'||a=='F'&&c=='F'||a=='V'&&c=='F')vect.push('F');
else if(a=='V'&&c=='V')vect.push('V');
}
if(b=='|'){
if(a=='V'){
while(!vect.empty()){
vect.pop();
}
printf("V\n");
break;
}
}
}
}
return 0;
}
妈蛋,从九点到凌晨三点钟,终于干掉了,都红了5次了