来源:CodeForce 5A,点击打开链接
ACM的精髓在于解决问题,而不是在于谁的代码看上去更高级。
——Rujia Liu 《算法艺术与信息学竞赛》
这个题便充分的体现出了这一点。
从INPUT来说看上去很复杂的样子,需要计算人数,统计人数,看谁走了……但其实,仔细看看,++,--管他加的谁还是减的谁,本来就是默认正确的,管他谁呢……
这样工作量减少了一半以上,虽然看上去不严谨了,但其实思维正是如此。
#include <iostream>
#include <string>
using namespace std;
int main()
{
int renshu=0;
int zijieshu=0;
string oper;
while(getline(cin,oper,'\n'))
{
if(oper[0]=='+')
{
renshu++;
}
else if(oper[0]=='-')
{
renshu--;
}
else
{
int kal=oper.find(':',0);
zijieshu+=(oper.size()-kal-1)*renshu;
}
}
cout<<zijieshu<<endl;
return 0;
}