#include <cmath>
#include <string>
#include <iostream>
#include <stack>
using namespace std;
int Point(string s[], int n)
{
int sum=0;
stack <int> data, extra;
for(int i=0; i<n; i++)
{
if(isdigit(s[i][0]))
{
data.push(stoi(s[i]));
}
if(s[i][0]=='C')
{
data.pop();
}
if(s[i][0]=='D')
{
data.push(2*data.top());
}
if(s[i][0]=='+')
{
extra.push(2*data.top());
data.pop();
data.push(data.top());
}
}
while(!data.empty())
{
sum+=data.top();
data.pop();
}
while(!extra.empty())
{
sum+=extra.top();
extra.pop();
}
return sum;
}
int main()
{
int n; cin >> n;
string s[n];
for(int i=0; i<n; i++) cin >> s[i];
cout << Point(s, n);
}
// Mọi người cho mình hỏi nguyên nhân code bị lỗi đó.
// Mình chạy mấy test vẫn đúng nhưng nộp bài một vài case nó trả về mã lỗi như thế.
// Mình không hiểu do đâu
Hỏi về lỗi Task failed with signal 11
Signal 11 là Segmentation fault.
Bạn xem ở đâu đó có truy cập ngoài mảng không, hay có chỗ nào đó pop stack mà stack rỗng không.
1 Like