比赛 noip_6 评测结果 AAAAAA
题目名称 打保龄球 最终得分 100
用户昵称 BYVoid 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2008-10-08 19:40:21
显示代码纯文本
#include <iostream>
#define MAX 13

using namespace std;

typedef struct
{
	int v[2];
	int cnt;
}ball;

ball B[MAX];
int F[MAX];
int N,M;

void init()
{
	int i;
	char c;
	freopen("bowling.in","r",stdin);
	freopen("bowling.out","w",stdout);
	for (i=1;i<=12;i++)
	{
		c=getchar();
		if (c=='/')
		{
			B[i].cnt=1;
			B[i].v[0]=10;
		}
		else
		{
			B[i].cnt=2;
			B[i].v[0]=c-'0';
			c=getchar();
			if (c=='/')
				B[i].v[1]=10-B[i].v[0];
			else
				B[i].v[1]=c-'0';
		}
		c=getchar();
		if (c!=' ')
			break;
	}
	N=i;
	if (B[N-2].v[0]==10 && B[N-1].v[0]==10)
		N-=2;
	else if (B[N-1].v[0]+B[N-1].v[1]==10)
		N--;
}

void solve()
{
	int i,p,sum;
	p=N;
	for (i=p;i>=1;i--)
	{
		if (B[i].v[0]==10)
		{
			F[i]=10;
			if (B[i+1].cnt==2)
				F[i]+=B[i+1].v[0]+B[i+1].v[1];
			else
				F[i]+=B[i+1].v[0]+B[i+2].v[0];
		}
		else if (B[i].v[0]+B[i].v[1]==10)
		{
			F[i]=10+B[i+1].v[0];
		}
		else
		{
			F[i]=B[i].v[0]+B[i].v[1];
		}
	}
	for (i=1;i<=p;i++)
		cout << F[i] << ' ';
	cout << endl;
	sum=0;
	for (i=1;i<=p;i++)
	{
		sum+=F[i];
		cout << sum << ' ';
	}
}

int main()
{
	init();
	solve();
	return 0;
}