分析
模拟,没什么的。就是数据有点坑,空格也算一个字符,而且名字里可能会有数字。此外,数组要开大一点,大约3000
代码
#include<bits/stdc++.h>
using namespace std;
const int N=102;
string ord[N*N],s;
int wz=1,ans,p,wzo;
int main()
{
while(getline(cin,ord[wz]))
{
s="";
wzo=0;
while((ord[wz][wzo]>='A'&&ord[wz][wzo]<='Z')||(ord[wz][wzo]>='a'&&ord[wz][wzo]<='z')||(ord[wz][wzo]>='0'&&ord[wz][wzo]<='9'))
wzo++;
if(ord[wz][wzo]=='+')
p++;
else if(ord[wz][wzo]=='-')
p--;
else if(ord[wz][wzo]==':')
{
wzo++;
s=ord[wz].substr(wzo,ord[wz].size()-wzo+1);
ans+=(s.size()*p);
}
else break;
wz++;
}
cout<<ans<<endl;
}