logo语言
2024-09-16 20:34:52
发布于:北京
3阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
string s;
int dfs(int l, int r) {
if (l > r) return 0;
string t;
while (l <= r && s[l] >= 'A' && s[l] <= 'Z') {
t += s[l];
l++;
}
int num = 0;
while(l <= r && s[l] >= '0' && s[l] <= '9') {
num = num * 10 + s[l] - '0';
l ++;
}
if(t == "FD") return num + dfs(l,r);
else if(t == "BK") return - num + dfs(l,r);
else{
int ans = 0;
for (int i = l;i <= r;i ++) {
if(s[i] == '[') ans ++;
else if(s[i] == ']') ans --;
if(ans == 0) return num * dfs(l + 1,i - 1) + dfs(i + 1,r);
}
}
}
int main() {
string str;
while (cin >> str) {
s += str;
}
cout << abs(dfs(0,s.size() - 1)) << endl;
return 0;
}
这里空空如也
有帮助,赞一个