求助!样例过了,但WA+TLE
查看原帖
求助!样例过了,但WA+TLE
700122
hnxxwpf楼主2024/7/29 17:28
#include<iostream>
#include<stack> 
using namespace std;
string s;
int n,x[100001],q,p;
int main(){
	getline(cin,s);
	cin >> n;
	for(int i = 1;i <= n;++i) cin >> x[i];
	cin >> p;
	while(p--){
		cin >> q;
		x[q] = 1 - x[q];
		stack<int> st;
		for(int i = 0;i < s.length();++i){
			if(s[i] >= '0' && s[i] <= '9'){
				int sum = 0,num = i;
				while(s[num] >= '0' && s[num] <= '9'){
					sum = sum * 10 + s[num] - 48;
					num++;
				}
				st.push(x[sum]);
			}else if(s[i] == '!'){
				int a = st.top();
				st.pop();
				st.push(1 - a);
			}else if(s[i] == '&'){
				int a = st.top();
				st.pop();
				int b = st.top();
				st.pop();
				st.push(a & b);
			}else if(s[i] == '|'){
				int a = st.top();
				st.pop();
				int b = st.top();
				st.pop();
				st.push(a | b);
			}
		}
		cout << st.top() << endl;
		x[q] = 1 - x[q];
	}
	return 0;
}

2024/7/29 17:28
加载中...