// Problem: P1166 打保龄球
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P1166
// Memory Limit: 125 MB
// Time Limit: 1000 ms
// 日期-时间: 2024-05-23 20:41
//
/*
总时长: 分
题目要点分析:
样例模拟解决思路分析:
用过的方法思路:
正确最优解法:
时间复杂度:
空间复杂度:
#算法/图论/最短路
#统计/修改次数/<10,10~30,>30
#统计/测试次数/<5,5~10,>10
#统计/提交次数/<3,3~8,>8
#错误/数据/变量,下标,类型,范围
#错误/条件/边界判断,场景情形
#错误/熟练/代码模板,库函数
#错误/分析/题意理解,遗漏要点,模拟样例,题解验算
#错误/调试/代码验算,对拍,打印分析
错误分析总结:
*/
#include<bits/stdc++.h>
using namespace std;
int a[25],id[15],ans[15],cnt;
int main()
{
string ttt;
int w = 1;
while(cin >> ttt)
{
id[w] = cnt+1;
for(int i = 0;i < ttt.size();i++)
{
if(ttt[i] != '/') a[++cnt] = ttt[i]-'0';
else
{
if(ttt.size() == 1) a[++cnt] = 10;
else a[++cnt] = 10-(ttt[i-1]-'0');
}//将'/'转换成数字
}//处理此轮滚球情况
w++;
}//输入
for(int i = 1;i <= 10;i++)
{
int t = 0,at = id[i];
t += a[at]+a[at+1];
if(t >= 10) t += a[at+2];
//如果本轮两次击倒保龄球瓶数不足10个,就不加后面的分
ans[i] = ans[i-1]+t;
cout << t << ' ';
}//统计每轮得分
cout << endl;
for(int i = 1;i <= 10;i++) cout << ans[i] << ' ';
return 0;
}
评测链接