神之题解
2025-05-24 18:28:40
发布于:四川
2阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
string s;
int f(int l, int r){
if(l > r) return 0;
string t = "";
while(l <= r && s[l] >= 'A' && s[l] <= 'Z')
t += s[l++];
int m = 0;
while(l <= r && s[l] >= '0' && s[l] <= '9')
m = m * 10 + s[l++] - '0';
if(t == "FD") return m + f(l, r);
else if(t == "BK") return - m + f(l, r);
else{
int ans = 0;
for(int i = l; i <= r; i++){
if(s[i] == '[') ans++;
if(s[i] == ']') ans--;
if(ans == 0)
return m * f(l+1, i-1) + f(i+1, r);
}
}
}
int main(){
string str;
while(cin >> str) s += str;
cout << abs(f(0, s.size() - 1));
return 0;
}
这里空空如也
有帮助,赞一个