题目描述
http://118.190.20.162/view.page?gpid=T73
题目分析
- 2对应的加分是要处理的,需要找出是否是第一个2
- 第一次处理的时候把=忽略了,结果20分
- 每次2之后的1都是下一个2开始的标志,所以用了个flag代表2是否连续
代码
#include <iostream>
using namespace std;
int main() {
int index=0;
int bonus=2,sum=0;
bool flag=false;
int n;
while(cin>>n&&n){
if(n==1){
sum+=1;
if(bonus>=2){//这里没写=的时候,测试用例2 1 2 1 0是错的
bonus=2;
flag=false;
}
}
if(n==2&&!flag){
sum+=2;
flag=true;
}else if(n==2&&flag){
bonus+=2;
sum+=bonus;
}
}
cout<<sum<<endl;
return 0;
}