比赛 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;
}