记录编号 |
3673 |
评测结果 |
AAAAAA |
题目名称 |
打保龄球 |
最终得分 |
100 |
用户昵称 |
BYVoid |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.022 s |
提交时间 |
2008-10-08 22:25:50 |
内存使用 |
0.26 MiB |
显示代码纯文本
#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;
}