比赛 |
20200612 |
评测结果 |
AAAAAA |
题目名称 |
打保龄球 |
最终得分 |
100 |
用户昵称 |
数声风笛ovo |
运行时间 |
0.003 s |
代码语言 |
C++ |
内存使用 |
13.66 MiB |
提交时间 |
2020-06-15 20:53:54 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int change(char t){
if(t=='/') return 10;
return t-'0';
}
int main(){
freopen("bowling.in","r",stdin);
freopen("bowling.out","w",stdout);
string s;
getline(cin,s);
int ans=0,gro[30]={-1,0,0},sco[30],i,j=1,k=1,a[15]={0},times=1;
int len=s.length();
for(i=0;i<30;i++) sco[i]=-1;
for(i=0;i<len;i++){
if(s[i]==' '){
continue;
}
gro[j]=k;
sco[j]=change(s[i]);
if(sco[j]==10) k++;
else if(gro[j]==gro[j-1]) k++;
if(gro[j]==gro[j-1]&&sco[j]==10)
sco[j]-=sco[j-1];
j++;
}
int tmp=j;
for(i=1,j=1;i<=tmp;i++){
if(sco[i]==10){
if(sco[i+1]==-1||sco[i+2]==-1) break;
a[j++]=sco[i]+sco[i+1]+sco[i+2];
times++;
continue;
}
if(gro[i]==gro[i+1]){
if(sco[i+1]==-1||sco[i+2]==-1) break;
if((sco[i]+sco[i+1])==10){
if(sco[i+2]==-1) break;
a[j++]=sco[i]+sco[i+1]+sco[i+2];
times++;
i++;continue;
}
else{
a[j++]=sco[i]+sco[i+1];
times++;i++;
}
}
}
times=min(times,11);
for(i=1;i<times;i++){
printf("%d ",a[i]);
}
printf("\n");
for(i=1;i<times;i++){
ans+=a[i];
printf("%d ",ans);
}
return 0;
}